python - 寻找两组数据点之间的非线性映射
问题描述
我有两组数据点;实际上,一个来自原像,另一个来自其图像,但我不知道两者之间的规则。该规则/函数是非线性的。
我已经收集了两张图像上相应位置的许多数据点,我想知道是否有人知道找到更完整映射的方法。也就是说,有没有人知道使用大量样本点找到从 R^2 到 R^2 的映射的最佳方法。这种映射是一对一的。
我的目标是使用我找到的数据来找到一个多项式函数,该函数从原像中获取一些 x,y 坐标,并输出移位的坐标。
编辑:我有沿域的样本点及其在图像中的对应点,但不是域中的每个点。我希望能够在域中输入任何点(仅整数值)并输出移位点。
解决方案
我认为多项式并不容易(或者容易保证是双射)。显而易见的事情是
- 构造域中已知点的 delaunay 三角剖分。
- 对于每个德劳内三角形,映射只是在顶点上插值映射的线性映射。
- 然后,当你有一个随机点时,查找它的 delaunay 三角形,并应用必要的地图。
我相信以上所有都可以通过scipy.spatial.delaunay
.
推荐阅读
- linux-kernel - 如何定制现有的内核模块以支持未来的升级和多种 Linux 风格?
- asp.net-core - 如何为 .NET Core 应用程序构建安装程序?
- excel - 如何使用范围创建登录表单
- flutter - Flutter 无法更新 gc.properties 的时间戳
- mysql - MySql 查询从日期或到日期是否存在选择数据
- kubernetes - Kubernetes 以负载均衡的方式调度 GPU-pod
- c++ - 如果 make_shared/make_unique 可以抛出 bad_alloc,为什么为它设置一个 try catch 块不是一种常见的做法?
- python - gunicorn ImportError:没有名为flask的模块
- unicode - ChrW 功能的替代方案
- python - 在 python 中使用 selenium webdriver 下载具有 stream-url 的文件是嵌入标签中的 chrome 扩展名