【问题标题】:Calculate transformation matrix from three 3D points从三个 3D 点计算变换矩阵
【发布时间】:2013-05-08 14:35:49
【问题描述】:

我有一个 3D 坐标系,我使用 3D 相机跟踪其中的三个外部点。
所以我在 (x,y,z) 空间中有三个点。
下一帧我再次跟踪这三个点。
我使用前三点作为初始情况。现在我需要绘制一个转换矩阵,与初始位置相比,它可以为我提供第二个 3 点的平移、旋转和缩放。

现在我真的不知道该怎么做。
有没有办法直接制作变换矩阵,还是我首先必须计算出平移、旋转和缩放矩阵,然后再制作这三个变换矩阵?

我在 c++ 中使用 opencv 和 qt 工作。 有人有什么建议吗?我不一定需要一个完整的工作示例,任何可以让我上路的东西都会受到赞赏。

谢谢! J

【问题讨论】:

    标签: c++ opencv coordinate-systems affinetransform coordinate-transformation


    【解决方案1】:

    这个tutorial 看起来很漂亮(您正在寻找的东西称为仿射 变换)!

    【讨论】:

    • 这个好像,除了是2D点的教程,我有3D点。我注意到 opencv 中的函数是 2D 而不是 3D。我会尝试做一个基于 2D 的解决方案,但也许你知道 3D 点的解决方案?
    【解决方案2】:

    您可以将从旧位置到新位置的转换视为方程组,其中未知数是矩阵的元素。解决这个系统会给你矩阵。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-27
      • 1970-01-01
      • 1970-01-01
      • 2012-07-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多