我正在使用calibrateCamera进行相机校准。输出的一部分是一组Rodrigues旋转 vector 和3-D平移 vector 。
我对相机的世界位置感兴趣。如果直接绘制平移点,则结果看起来不正确。我觉得我的坐标空间混乱了,但是我在解析opencv文档时遇到了麻烦:
我的问题是,如何从Rodrigues旋转 vector 和使用opencv的calibratecamera获得的相应平移 vector 中得出相机的世界位置?
最佳答案
从opencv docs:世界到相机坐标
那里有2个矩阵the intrinsic matrix and the extrinsic matrix。
如果您在相机中将XYZ坐标设置为(中间为中心),则本征矩阵会为您提供图像中某物的U,V坐标(像素)坐标。外在矩阵从世界坐标中为您提供XYZ中相机中的坐标。
因此,您仅需要外部矩阵即可实现目标。
您知道您想要从相机中的XYZ走向世界。由于外部矩阵是从世界到相机的,因此您只需要将其反转即可!
Cworld=E^(-1)*Ccamera
相机坐标系中的相机坐标为
Ccamera=[0,0,0]
外在矩阵由
calibrateCamera
,rvects
和tvects
的两个输出组成。关于opencv - 如何从calibrateCamera结果中获取相机的世界位置?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32849373/