2

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

我尝试过的事情:

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

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

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

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

4

1 回答 1

0

你去我的朋友..我自己用过它,只能推荐你试一试。

卡恩学院 - 矩阵变换

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

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

于 2013-01-14T04:04:18.937 回答