簡體   English   中英

多個圖像拼接 - 添加第三個圖像

[英]Multiple Image stitching - Adding a third image

在將兩個圖像拼接在一起后,我試圖縫合第三個圖像,但它似乎不起作用。

為了詳細說明,我使用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);

warperpective的結果給出了黑色圖像而不是剩余區域。

有人可以告訴我哪里可能出錯了以及如何解決? 謝謝

首先是你的

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));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM