Сшивание изображений с помощью матрицы гомографии

Я пытаюсь сшить изображения, искажая изображения на основе гомографии между двумя изображениями.

Я рассчитываю свою гомографию и получаю точки совпадения между двумя изображениями через стандартный пример гомографии. Затем я пытаюсь деформировать изображения вместе, используя этот расчет с приведенным ниже кодом:

// Use the Homography Matrix to warp the images
cv::Mat result;
warpPerspective(I_1,result,H_12,cv::Size(800,600));
cv::Mat half(result,cv::Rect(0,0,I_2.cols,I_2.rows));
I_2.copyTo(half);
return result;

I_1 и I_2 — 2 изображения.
H_12 Гомография между ними.

Однако это приводит к изображению, как это:

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

Использование стандартного класса Stitcher приводит к тому, что оба изображения сшиты правильно:

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

Поэтому мне интересно, как я могу правильно деформировать свои изображения на основе омографии, чтобы объединить их.

Мой полный код Вот

РЕДАКТИРОВАТЬ:

То, как я рассчитал гомографию, приводит к смещению изображений. Я использовал BFMatcher вместо FlannBasedMatcher, и я работал с примером, связанным с skeller.

Я мог также заставить это работать с моим методом. Мне нужно было деформировать второе изображение вместо первого. Таким образом, приведенный выше код изменяется на этот

  cv::Mat result;
warpPerspective(I_2,result,H_12,cv::Size(800,600));
cv::Mat half(result,cv::Rect(0,0,I_2.cols,I_2.rows));
I_1.copyTo(half);
return result;

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]