OpenCV: вычислить матрицу вращения для StereoRectify - PullRequest
1 голос
/ 22 сентября 2011

Я хочу вычислить матрицы поворота и перевода, чтобы использовать их для 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...