簡體   English   中英

關於帶有掩碼的 OpenCV GrabCut 分割上的標簽?

[英]About the labels on OpenCV GrabCut segmentation with mask?

我正在使用 OpenCV 使用GrabCut分割一些圖像。 在我的圖像上,我想從背景中分割單個對象。 我想找到物體的輪廓; 我知道它的大概位置,所以我將它的中心標記為FG = Foreground 然后我將它周圍的小帶標記為P_BG = 可能的背景,這是我希望 GrabCut 執行分割的區域。 最后,圖像的其余部分被標記為BG = Background 我不希望 GrabCut 在這里做任何事情(沒有圖表,沒有顏色模型,沒有任何東西)

現在,有 4 個可能的標簽:

  • 可能的背景 (P_BG)
  • 可能的前景 (P_FG)
  • 背景 (BG)
  • 前景(FG)

問題

  • P_BGP_FG之間的實際區別是什么? (似乎很明顯,但我交替使用它們並且它沒有任何改變?
  • GrabCut 使用哪些標簽來生成所使用的顏色模型(可能/非可能)?
  • 最后,我如何告訴 GrabCut 不要在背景區域做任何事情? (我希望它完全忽略背景區域,它顯然在那里做了一些事情,因為分割完整圖像比分割裁剪版本花費的時間要長得多(見下圖),我等不及它分析整個圖像,我'已經提供了它應該“工作”的區域)

在此處輸入圖片說明

它不能在 BG 上做任何事情,因為它使用這樣的像素作為 100% 確定背景的模型。 FG 像素也是如此。

如果您不使用 FG 和 BG 標簽,您將看到 P_FG 和 P_BG 之間的區別。 這個 P_* 標簽用於第一個模型,但可以在下一次迭代中重新標記。

實際上,使用矩形進行初始化與使用帶有矩形內部的 P_FG 和其余像素的 P_BG 的掩碼相同。

在 OpenCV 中當前的 GrabCut 實現中,無法讓 GrabCut 完全忽略任何像素。 每個像素都用於創建前景色和背景色模型。

如果你不想被忽略的區域是矩形,你可以使用roi先提取圖像的相關區域,然后對剩余部分調用GrabCut。 這將導致原始 ROI 之外的像素不會在顏色模型中使用,並且將是一種有效的實現,因為沒有復制任何內容。

暫無
暫無

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

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