您的位置:首页 > 运维架构

OpenCV Tutorial: 影像分割(grabCut)

2016-10-31 11:26 489 查看

影像分割(grabCut)

OpenCV提供另一個grabCut影像分割演算法,計算方式較watershed更複雜,但結果比較精確,如果想要從靜態影像提取前景物體,像是將一幅影像中的物體剪貼到另一幅圖中,這是最佳算法。

提取前景

void grabCut(InputArray img, InputOutputArray mask, Rect rect, InputOutputArray bgdModel, InputOutputArray fgdModel, intiterCount, int mode=GC_EVAL)

img:輸入圖,8位元3通道。
mask :輸出圖,8位元單通道圖。
rect :輸入矩形,在這之外的像素全都是背景,只有mode參數是GC_INIT_WITH_RECT時才有效。
bgdModel:背景模型,供演算法內部使用,基本上可以忽略。
fgdModel:前景模型,供演算法內部使用,基本上可以忽略。
intiterCount:迭代次數。
mode:處理模式。
輸出圖mask每個像素為以下四個標誌之一:

GC_BGD:確定是背景。
GC_ FGD :確定是前景。
GC_PR_BGD:可能是背景。
GC_PR_ FGD :可能是前景。
mode:有以下三種可選擇:

GC_INIT_WITH_RECT:提供矩形範圍的初始條件。
GC_INIT_WITH_MASK:提供遮罩,可和GC_INIT_WITH_RECT共同使用,在這ROI之外的為背景。
GC_EVAL:預設模式。

GrabCut對影像進行切割,來獲得最佳配置,不斷迭代優化結果,根據場景的複雜度,得到滿意結果的迭代次數可多可少
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: