所以我有一个相机,我用它来获取它前面的物体的相机坐标(物体相对于相机的坐标)。所以我能够实现这一目标。
现在我想找到该物体相对于我在地面上放置的坐标系的坐标。 (引用坐标/世界坐标)
我理解它只是一个旋转/平移矩阵。
我很难获得这个矩阵。有人知道我该如何做到这一点吗?
所以我基本上有了目标对象的 XYZ 相机坐标以及我放置作为引用坐标系的轴
谢谢!
最佳答案
假设你有:
- 属于对象与相机相关的跟踪特征的一组 XYZ 坐标。
- 某些 CAD(或世界)引用系(设计坐标)中相同特征的 XYZ 坐标。
您可以通过使用 Kabsch 算法计算这些成对的点坐标集之间的最佳旋转来获得旋转和平移:https://en.wikipedia.org/wiki/Kabsch_algorithm
所以,基本上你:
- 获取每个坐标集[XYZ]_i的质心,其中i= 1, 2。
- 对每个坐标去质心(从每个 [XYZ] 中减去每个质心)
- 形成协方差矩阵(称为 C)
- 将 SVD 应用于协方差矩阵 [U,S,V] = svd(C)
- 旋转 = V*U',其中,' 是转置运算符
- 翻译 = -R * centroid_of_[XYZ]_1 + centroid_of_[XYZ]_2
这里有一个关于找到这个旋转~翻译对的很好的指南:http://nghiaho.com/?page_id=671
希望对您有所帮助。
关于matrix - 点相对于引用坐标系的坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26129537/