Grabcut算法是重要的图像分割算法,其使用高斯混合模型估计目标区域的背景和前景。该算法通过迭代的方法解决了能量函数最小化的问题,使得结果具有更高的可靠性。OpenCV 4提供了利用Grabcut算法分割图像的grabCut()函数,该函数的函数原型在代码清单8-21中给出。
代码清单8-21 grabCut()函数原型
void cv::grabCut(InputArray img,
InputOutputArray mask,
Rect rect,
InputOutputArray bgdModel,
InputOutputArray fgdModel,
int iterCount,
int mode = GC_EVAL
)
标志参数 | 简记 | 含义 |
---|---|---|
GC_BGD | 0 | 明显为背景的像素 |
GC_FGD | 1 | 明显为前景(对象)的像素 |
GC_PR_BGD | 2 | 可能为背景的像素 |
GC_PR_FGD | 3 | 可能为前景(对象)的像素 |