我想计算用于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);