将点从一个2D平面映射到另一个2D平面

时间:2013-01-14 03:49:38

标签: mapping points nonlinear-functions

给定平面A上的一个点,我希望能够映射到平面B上的相应点。我在两个平面之间有一组N对应的参考点,但是,整体映射不是简单的仿射变换(对我来说没有单应性)。

我尝试过的事情:

  • 对于给定的点,找到平面A中的三个最接近的参考点,计算该三角形的粗体坐标,然后将该变换应用于平面B中的相应参考点。它如何失败:有时三个最接近点几乎是共线的,因此误差很大。此外,跨越边界时映射没有一致性。这非常“紧张。”

  • 在给定N个参考点(N ^ 3)的情况下计算所有可能的三角形。按尺寸订购。对于给定的点,找到它所在的最小三角形。这将线性修正 分问题,但仍然非常紧张和缓慢。

  • 从三角形平面A开始。迭代参考点,将每个参考点添加到参考平面。每次添加一个点时,它至少存在于一个三角形中。使用新参考点作为顶点将该三角形分成三个三角形。您最终得到的平面A是三角形的,因此您可以轻松地从平面A映射到平面B.问题:您可以证明每个三角形都有一个位于平面边缘的点。如果你的参考点远离飞机的边缘,这会导致巨大的错误。

我觉得这应该是一个相当标准的问题。有没有标准的算法/库?

1 个答案:

答案 0 :(得分:0)

你去了我的朋友..我使用了它myslef,只能建议你尝试一下。

  

Kahn Academy - Matrix转换

     

了解我们如何将一组矢量映射到另一组。用于定义线性变换的矩阵

     

https://www.khanacademy.org/math/linear-algebra/matrix_transformations