0
我在两个不同的坐标空间(A和B)中有一个3D配对点阵列。从3D数据计算非仿射变换矩阵
给定的点不是共面的,我该如何计算一个能够将点从A转换为B的非仿射变换矩阵?
我已经设法在二维(使用单应性)做到这一点,但不能解决如何使它在3D中工作。如果可能,快速代码示例将非常感谢。 :)
我在两个不同的坐标空间(A和B)中有一个3D配对点阵列。从3D数据计算非仿射变换矩阵
给定的点不是共面的,我该如何计算一个能够将点从A转换为B的非仿射变换矩阵?
我已经设法在二维(使用单应性)做到这一点,但不能解决如何使它在3D中工作。如果可能,快速代码示例将非常感谢。 :)
this post中描述的方法将概括为三个维度:如果知道两个坐标系中的五个点的坐标,则可以使用它们来计算4×4投影变换矩阵,这将是除了没有几何相关性的比例因子之外是唯一的。
我已经包括在variousposts用于2D所需的代码的变型,sage写的,并且还存在与the description沿提到的JavaScript示例。其中的任何一个都可以适应3D情况,但是如果您还想更改编程语言,那么您可能会更好地直接实现公式,请记住,伴随矩阵可以用作几个矩阵的逆矩阵的替代位置。
下面是关于泛化一些细节3D:
谢谢 - 我知道如何在2D中做到这一点,但我不确定如何推广到3D,特别是在步骤1,2和7中。 – John
感谢您的更新!在你的文章中你提到你使用了辅助矩阵来解决。你能解释一下吗? – John
在步骤1中,您必须求解一个线性方程,该方程可以通过将RHS向量乘以LHS矩阵的逆矩阵来实现。在第4步中,您需要进行反向操作。在这两种情况下,您都可以使用伴随而不是反向,最终结果只会因标量倍数而有所不同,这是没有几何结果的。 – MvG