Я хочу вычислить матрицы поворота и перевода, чтобы использовать их для StereoRectify в открытом резюме.Выпрямленные изображения выглядят изогнутыми и совершенно неправильными (как полностью изогнутый конус в центре изображения, идущий в обоих направлениях)
У меня есть матрицы вращения и перемещения обеих камер ...
Это нелепый пост, но он не помогает: Поиск матриц вращения между двумя камерами для "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);