【问题标题】:Computing a non-affine transformation matrix from 3D data从 3D 数据计算非仿射变换矩阵
【发布时间】:2013-10-06 18:35:10
【问题描述】:

我在两个不同的坐标空间(A 和 B)中有一个 3D 配对点数组。

给定点不共面,如何计算能够将点从 A 转换为 B 的非仿射变换矩阵?

我已经设法在 2D 中做到这一点(使用单应性),但无法弄清楚如何让它在 3D 中工作。如果可能的话,将非常感谢一个快速的代码示例。 :)

【问题讨论】:

    标签: matrix geometry coordinate-systems homography


    【解决方案1】:

    this post 中描述的方法将推广到三个维度:如果您知道两个坐标系中五个点的坐标,那么您可以使用它们为此计算一个 4×4 投影变换矩阵,这将是唯一的除了没有几何相关性的比例因子。

    我在variousposts 中包含了二维所需代码的变体,为sage 编写,还有与the description 一起提到的JavaScript 示例。这些中的任何一个都可以适应 3D 情况,但是如果您还想更改编程语言,那么您最好直接实现公式,请记住,伴随可能在几个矩阵中用作矩阵逆的替代地点。

    这里有一些关于泛化到 3D 的细节:

    1. 使用 4×4 线性方程组,左边四个点的齐次坐标,右边第五个点。
    2. 使用四个解变量来缩放这四列以获得变换矩阵。
    3. (和以前一样)
    4. (和以前一样)
    5. (和以前一样)
    6. (和以前一样)
    7. 将齐次坐标向量的前三个坐标除以第四个坐标,得到去齐次坐标。

    【讨论】:

    • 谢谢 -- 我知道如何在 2D 中执行此操作,但我不确定如何推广到 3D,特别是在步骤 1、2 和 7 中。
    • 感谢您的更新!在您的帖子中,您提到您使用辅助矩阵来解决。你能再解释一下吗?
    • 在第 1 步中,您必须求解线性方程,这可以通过将 RHS 向量与 LHS 矩阵的逆矩阵相乘来完成。在第 4 步中,您需要进行逆运算。在这两种情况下,您都可以使用伴随而不是逆,并且最终结果将仅相差一个标量倍数,这没有几何后果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多