OpenCV:计算stereoRectify的旋转矩阵

时间:2011-09-22 14:44:52

标签: opencv matrix rotation

我想计算用于open CV中的stereoRectify的旋转和平移矩阵。经过校正的图像看起来扭曲且完全不正确(就像图像中心的两个方向都是完全扭曲的锥形)

我有两个相机的旋转和平移矩阵....

此外,这是一个微笑的帖子,但没有帮助:Finding Rotation matrices between two cameras for "Stereorectify"

我在下面分享我的代码......

// Create interinsic parameters matrix given the translation and rotation matrecis
Mat CreateExternsicParamsMat(Mat R, Mat T)
{
    Mat ext1(4,4,T.type());
    Mat ext2(4,4,T.type());
    for(int i=0; i<3;i++)
        for(int j=0;j<3; j++)
            ext1.at<double>(i,j) = R.at<double>(i,j);
    for(int i=0; i<3;i++)
        ext1.at<double>(i,3) = T.at<double>(i,0);
    ext1.at<double>(3,3) = 1;
    ext1.at<double>(3,2) = 0;
    ext1.at<double>(3,1) = 0;
    ext1.at<double>(3,0) = 0;
    return ext1;
}


Mat ext1 = CreateExternsicParamsMat(R1,T1);
Mat ext2 = CreateExternsicParamsMat(R2,T2);
Mat ext1inv;
invert(ext1,ext1inv);
Mat ext = ext1inv*ext2;

for(int i=0; i<3;i++)
   for(int j=0;j<3; j++)
      R.at<double>(i,j) = ext.at<double>(i,j);

for(int i=0; i<3;i++)
    T.at<double>(i,0)=ext.at<double>(i,3);

stereoRectify( M1, D1, M2, D2, img_size, R, T, R1, R2, P1, P2, Q);

0 个答案:

没有答案
相关问题