Сшивание нескольких изображений — добавление третьего изображения

Я пытаюсь сшить третье изображение после сшивания двух изображений вместе, но, похоже, это не работает.

Чтобы уточнить, я успешно соединил два изображения вместе, используя код, приведенный в документации opencv (http://docs.opencv.org/doc/tutorials/features2d/feature_homography/feature_homography.html) и получил это изображение.
http://i.stack.imgur.com/gqQjV.jpg

Затем, после большого чтения и проблем с ROI, я удалил черные части изображения, чтобы получить это изображение.
введите описание изображения здесь

Сейчас пытаюсь прошить третье изображение (http://i.stack.imgur.com/nXD86.jpg) к этому, используя тот же код, но шить не работает. Функция соответствия работает отлично.

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

Но после выполнения программы я получаю то же изображение с большей черной областью (из-за ROI) и без третьего изображения. (Выход:http://i.stack.imgur.com/WzZA0.jpg)

Я подумал, что это как-то связано с крошечной черной полоской в ​​конце сшитого изображения, поэтому оператор WarpPerspective не отображает сшитую область. Код :

Mat result;
warpPerspective(img_scene, result, H, Size(img_scene.cols*2, img_scene.rows*2), INTER_CUBIC);
Mat final(Size(img_scene.cols + img_object.cols, img_scene.rows*2),CV_8UC3);

Mat roi1(final, Rect(0, 0,  img_object.cols, img_object.rows));
Mat roi2(final, Rect(0, 0, result.cols, result.rows));
result.copyTo(roi2);
img_object.copyTo(roi1);

Результат warpperspective дает черное изображение вместо оставшейся области.

Может кто-нибудь сказать, пожалуйста, где я могу пойти не так и как это исправить?
Спасибо

3

Решение

Прежде всего ваш

Mat final(Size(img_scene.cols + img_object.cols, img_scene.rows*2),CV_8UC3);

должен стать

Mat final(Size(img_scene.cols + img_object.cols, img_scene.rows),CV_8UC3);

так как вам не нужно увеличивать высоту.

Теперь для копирования с ROI, убедитесь, что не перезаписать. Будет ли это работать вместо этого?

Mat roi2(final, Rect(img_object.cols, 0, img_object.cols + result.cols, img_object.rows));
1

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

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

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