[英]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 上做任何事情,因為它使用這樣的像素作為 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.