2013-07-10 288 views
0

基本上我寫了一個有兩個圖像的代碼。一個參考img和一個背景img。到目前爲止,我已經通過使用特徵識別成功找到了匹配圖像。然後我旋轉它,並調整它看起來相同的參考圖像。剩下的唯一問題是這樣的事實,即圖像作爲對象邊緣上的一些背景圖像。此圖片已被適當裁剪,所以我只需要使用下面的圖片。首先找到的最明顯的答案可能是使用邊緣檢測算法(canny),並使用它來給我一個關於背景位置的線索。然而,由於圖像本身在技術上可能是任何我覺得會有很多噪音和各種不尋常的錯誤,所以如果可能的話,我寧願不想走這條路。我還看到了背景MOG,但它似乎適用於視頻,而不適用於單幅靜止圖像。如果我錯了,我嘗試了下面的代碼,但有0效果:想法使用opencv去除背景條紋

BackgroundSubtractorMOG bs_mog(3, 4, 0.8); 
    Mat foreground_mog; 
    bs_mog (cropped_img, foreground_mog, -1.0); 

也許我做錯了。所以我的想法是不是邊緣檢測等,如果backgroundsubtractorMOG僅適用於動態影像是否有任何其他的想法或選項,我可以考慮刪除的條紋背景圖像(我希望把所有到只是白)

enter image description here

預先感謝您爲您的想法和意見

編輯:

以及我unerstand已經張貼別人的邏輯,但我不能確定什麼是最好的方法,使這一底部的形象將是一個面具。重要的是要注意,圖像在技術上可以是任何東西。不需要圓形。同樣由於算法的變化,在對象與背景分離之後,形狀必須調整大小。這意味着我不能使用我的參考圖像來製作一個蒙版,並且由於尺寸的差異而在該圖像上使用該蒙版。

+1

可以從您的參考圖像創建模板並用它來留住只是使用邏輯與背景圖像的感興趣區域? –

回答

0

分割可以工作。嘗試cvgrabCut()customized mask

  • 設置爲背景所有像素都非常接近邊界。 (下圖中的紅色)
  • 設置爲前景圖像的中心區域。 (下圖中的綠色)
  • 任何中間像素將它們設置爲可能是前景。 (下文中的圖像灰度)

enter image description here

+0

thxs,我會給這個嘗試 – user2427671

+0

讓我知道它是否有效。 – William