我正在使用calibrateCamera进行相机校准。输出的一部分是一组Rodrigues旋转 vector 和3-D平移 vector 。

我对相机的世界位置感兴趣。如果直接绘制平移点,则结果看起来不正确。我觉得我的坐标空间混乱了,但是我在解析opencv文档时遇到了麻烦:



我的问题是,如何从Rodrigues旋转 vector 和使用opencv的calibratecamera获得的相应平移 vector 中得出相机的世界位置?

最佳答案

opencv docs:世界到相机坐标

opencv - 如何从calibrateCamera结果中获取相机的世界位置?-LMLPHP

那里有2个矩阵the intrinsic matrix and the extrinsic matrix

如果您在相机中将XYZ坐标设置为(中间为中心),则本征矩阵会为您提供图像中某物的U,V坐标(像素)坐标。外在矩阵从世界坐标中为您提供XYZ中相机中的坐标

因此,您仅需要外部矩阵即可实现目标。

您知道您想要从相机中的XYZ走向世界。由于外部矩阵是从世界到相机的,因此您只需要将其反转即可!

Cworld=E^(-1)*Ccamera

相机坐标系中的相机坐标为Ccamera=[0,0,0]
外在矩阵由calibrateCamerarvectstvects的两个输出组成。

关于opencv - 如何从calibrateCamera结果中获取相机的世界位置?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32849373/

10-11 22:45
查看更多