сшивание вручную с помощью opencv

Привет, я пытаюсь сшить некоторые изображения без использования класса стежка, предоставленного opencv. Но выход довольно неожиданный. Я объясню это с входным и выходным изображением.

input1 введите здесь описание изображения

input2введите здесь описание изображения

ожидаемый результатвведите здесь описание изображения

реальный вывод введите здесь описание изображения

Я думаю, что что-то не так с моим копированием ROI. помогите кто нибудь!!!

Мой код для сшивки выглядит следующим образом:

std::vector< Point2f > points1,points2;
        for( int i = 0; i < matches1.size(); i++ )
           {
            points1.push_back( keypoints_input1[matches1[i].queryIdx ].pt );
            points2.push_back( keypoints_input2[matches1[i].trainIdx ].pt );
           }
        /* Find the Homography Matrix for current and next frame*/
         Mat H1 = findHomography( points2, points1, CV_RANSAC );
         /* Use the Homography Matrix to warp the images*/
        cv::Mat result1;
        warpPerspective(input2, result1, H1, Size(input2.cols+150, input2.rows+150),     INTER_CUBIC);
        Mat stitch_1(Size(input2.cols+150, input2.rows+150),CV_8UC3);
        Mat roi1(stitch_1, Rect(0, 0,  input1.cols, input1.rows));
       Mat roi2(stitch_1, Rect(0, 0, result1.cols, result1.rows));
    
   
       input2.copyTo(roi1);
    result1.copyTo(roi2);

Может ли кто-нибудь сказать мне, где я ошибаюсь? Благодарю.

Изменить: input1 (640 360) и input2 (790 510) имеют разный размер.


person MMH    schedule 25.02.2014    source источник


Ответы (1)


Я надеюсь, что этот пример поможет вам.

Интересно протестировать на разных изображениях.

ИЗМЕНИТЬ:

попробуйте этот код:

Mat stitch_1(Size(input2.cols*2+ input1.rows,input2.rows*2),CV_8UC3);
Mat roi1(stitch_1, Rect(0, 0,  input1.cols, input1.rows));
Mat roi2(stitch_1, Rect(0, 0, result1.cols, result1.rows));
result1.copyTo(roi2);
input1.copyTo(roi1);
imshow("final", stitch_1);
person Y.AL    schedule 25.02.2014
comment
спасибо за ваш ответ, но входные изображения в ссылке имеют одинаковые размеры. Я тоже пробовал этот код, но он не работает. - person MMH; 25.02.2014
comment
извините, но у него аналогичный вывод, с более черной областью. Спасибо - person MMH; 25.02.2014