matlab - 旋转Matlab Stereo Camera Calibrator给定的世界坐标系

标签 matlab computer-vision coordinate-systems camera-calibration matlab-cvst

使用 Matlab 立体相机校准器时的默认坐标系是使 Z 远离相机增加(参见本页底部图像:http://www.mathworks.com/help/vision/gs/coordinate-systems.html)

我想旋转我的坐标系,使其仍然是右手坐标系,但 z=0 在校准目标处,+z 指向相机。我可以构造一个旋转矩阵 R,它将围绕 x 轴将任何坐标旋转 180 度:

RotMatrix= [1    0    0;
            0   -1    0;     % 0  cos(pi)  -sin(pi)
            0    0   -1];    % 0  sin(pi)  cos(pi)

我可以看到这如何旋转任何世界点的坐标,例如

P_new_coordinates= R*[Px; Py; Pz];

但我不确定如何在从像素坐标到世界坐标的转换中考虑坐标系的这种旋转,反之亦然。有没有办法可以将其直接合并到我的相机矩阵中?我正在使用 3x4 相机矩阵约定:

[su; sv; s]= M*[X; Y; Z; 1]

最佳答案

你当然可以选择任何你喜欢的世界坐标系,并创建相应的相机矩阵。在您的符号中,相机矩阵 M 可以分解如下:

M = K' * [R t]

其中 K' 是由立体相机校准器给出的固有矩阵的转置,R 是旋转矩阵,t 是作为列向量的平移。对于立体系统的相机 1,R 是单位矩阵,t 是一个 0 向量,因为相机 1 位于指向 z 轴下方的原点。如果您想使用其他世界坐标系,您只需适当调整 R 和 t。

关于matlab - 旋转Matlab Stereo Camera Calibrator给定的世界坐标系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30386329/

相关文章:

function - SciLab 绘图

opencv - 多 otsu(多阈值)与 openCV

cocoa - Mac OS X Cocoa,在全局屏幕坐标空间中翻转 Y 坐标

raster - 在 QGIS 中打开地理引用栅格 .PNG .TAB

python - 检查地理点是在多边形内部还是外部

algorithm - 在 Matlab 3D 数组中查找重复的 2D 数组

c++ - 为 OpenCV 编译 MATLAB 绑定(bind)

matlab - Adaboost 的自定义学习器函数

python - 在 opencv 中,我如何获得分段区域列表

c++ - 使用 cv::goodFeaturesToTrack 拟合线