首页 > 解决方案 > 寻找两组数据点之间的非线性映射

问题描述

我有两组数据点;实际上,一个来自原像,另一个来自其图像,但我不知道两者之间的规则。该规则/函数是非线性的。

我已经收集了两张图像上相应位置的许多数据点,我想知道是否有人知道找到更完整映射的方法。也就是说,有没有人知道使用大量样本点找到从 R^2 到 R^2 的映射的最佳方法。这种映射是一对一的。

我的目标是使用我找到的数据来找到一个多项式函数,该函数从原像中获取一些 x,y 坐标,并输出移位的坐标。

编辑:我有沿域的样本点及其在图像中的对应点,但不是域中的每个点。我希望能够在域中输入任何点(仅整数值)并输出移位点。

标签: pythonmatlabscipy

解决方案


我认为多项式并不容易(或者容易保证是双射)。显而易见的事情是

  1. 构造域中已知点的 delaunay 三角剖分。
  2. 对于每个德劳内三角形,映射只是在顶点上插值映射的线性映射。
  3. 然后,当你有一个随机点时,查找它的 delaunay 三角形,并应用必要的地图。

我相信以上所有都可以通过scipy.spatial.delaunay.


推荐阅读