我在两个不同的坐标空间(A 和 B)中有一个 3D 配对点数组。
给定点不共面,如何计算能够将点从 A 转换为 B 的非仿射变换矩阵?
我已经设法在 2D 中做到这一点(使用单应性),但无法弄清楚如何让它在 3D 中工作。如果可能的话,将非常感谢一个快速的代码示例。:)
我在两个不同的坐标空间(A 和 B)中有一个 3D 配对点数组。
给定点不共面,如何计算能够将点从 A 转换为 B 的非仿射变换矩阵?
我已经设法在 2D 中做到这一点(使用单应性),但无法弄清楚如何让它在 3D 中工作。如果可能的话,将非常感谢一个快速的代码示例。:)
这篇文章中描述的方法将推广到三个维度:如果您知道两个坐标系中五个点的坐标,那么您可以使用它们为此计算一个 4×4 投影变换矩阵,该矩阵除了比例之外是唯一的没有几何相关性的因素。
我已经在各种 帖子中包含了 2D 所需代码的变体,为sage编写的,还有与描述一起提到的 JavaScript 示例。这些中的任何一个都可以适应 3D 情况,但是如果您还想更改编程语言,那么您最好直接实现公式,请记住,伴随可能在几个矩阵中用作矩阵逆的替代地点。
以下是关于泛化到 3D 的一些细节: