我有一个关于 3d 空间中两组点的问题。 我在一个笛卡尔坐标系中通过 40 个坐标定义了一个体积, 在另一个具有不同 (0,0,0) 的坐标系中,我的体积也由 40 坐标定义,但体积略有不同。我知道点集的匹配对,并且我想测量每个点对的差异(欧几里得距离)。 现在 1)我如何相互引用两个坐标系(相同比例),2)我如何最好地计算注册两个体积的变换?
感谢您的帮助。
最佳答案
如果您知道匹配对,那么可以使用伪逆(Matlab 或 numpy 中的 pinv())非常简洁地解决这个问题。
- 将点放入两个数组中,A & B,尺寸为 3x40。
- 在每个底部添加一行 1,因此 它们现在的尺寸为 4x40。
- 将 B 转换为 A 的 4x4 矩阵 (包括任何翻译)是 A * 针v(B)。
在(大部分)一般位置有 40 个点,这甚至可以处理任意比例、旋转或透视变换。
关于math - 两组 3d 点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1373593/