2014-03-25 65 views
2

是否有可能通過在兩個圖像中搜索OpenCV中的相同功能來合併兩個圖像? 我的圖像將始終包含太大的紙張,無法在單個圖像中捕獲,因此我需要拍攝兩張或更多圖像 - 圖像被捕獲以便存在一些重疊區域,請參閱:在OpenCV中合併兩個圖像的功能檢測

熱門圖片:http://i.imgur.com/0tvGVKG.jpg

底畫面:http://i.imgur.com/nmlO4gL.jpg

IDEA:限制功能,以僅向上/向下移動,而不是在正確的等。更是這樣,兩個相同的特徵之間的所有向量在兩個圖像中的長度必須或多或少相同,因爲該區域重疊。 OpenCV也只需要查看圖片1的底部,並在圖片2的頂部看重疊特徵。所有其他區域都沒有興趣......

編輯:好吧,我發現了一些有關此源終於在解答一些很好的鏈接:how to find overlapping region between images in opencv?

回答

2

是您已發佈鏈接的問題是要走的路。對於您的案例(紙張),本地功能可能無法很好地工作,如果它不應該做一種行掃描程序,您可以比較一個圖像的幾行到另一個圖像的行,直到行比較有效相似度高於某個閾值。基本上找到圖像應該相交的地方。

對於Java圖像拼接您可以檢查此OpenCV的選擇:BoofCV

還是這個專用的拼接庫:Hugin

在最壞的情況下,你可以查看他們是如何做到的拼接和編寫自己一個簡單的版本。

+0

問題是,對於OpenCV的拼接API沒有Java綁定:(我肯定需要它在Java中:(Rowscanning也是一個好主意,但相當困難,我想因爲我需要有一定的由於第二個圖像肯定被捕獲了一點不同/旋轉,傾斜,不同的照明等),所以可以覆蓋保險(可能性模型)的閾值。 – tim

+0

是的,這是真的,我已經在答案中放置了一些替代方案 –

+0

謝謝。關於BoofCV,也看起來很不錯,所以我記住了,Hugin也很好看 - 我需要檢查它是否在Android下運行... :)編輯:啊,我認爲Hugin是一個庫,但實際上它是一個完整的運行程序,我可能可以通過API訪問,但不是在Android上:( – tim