GrabCut

GrabCut是一个基于计算机视觉中的理论的图像分割方法。

在GrabCut中，像素被划分为ground truth background、ground truth foreground、maybe background、maybe foreground四类标签。开始时，用户需要画出一个完整包含目标物体的。框内的像素被标记为maybe foreground，而框外的则是ground truth background。

然后算法使用高斯混合模型（GMM）估计目标物体和背景的色彩分布。GMM用于在像素标签上构建马尔可夫随机场，其能量函数更喜欢具有相同标签的连接区域。运行基于图割（如最小割）的优化来推断位于不确定区域（标签为maybe background、maybe foreground的像素）的标签值。此估计比用户画出的边界框的原始估计更准确，因此上述过程将多次重复，直到收敛。

用户可以通过反复多次指出错误分类的区域，使算法重新运行优化，获得更佳结果。

OpenCV中已经提供开源实现。

参见 
 连通性 (图论)
 Prim算法
 Edmonds–Karp算法

参考资料
C. Rother, V. Kolmogorov, and A. Blake, GrabCut: Interactive foreground extraction using iterated graph cuts , ACM Trans. Graph., vol. 23, pp. 309–314, 2004.

图像分割