grabcut 实现过程
step 1.用户通过选择矩形框选择初始trimap(即rgb子图像)。矩形外部像素标记为背景,内部像素标记为未知。
用户在感兴趣物体周围画一个矩形框,矩形框内的像素被标记为TrimapUnknown(未知trimap),外部像素标记为TrimapBackground(背景trimap)。
step 2.计算机创建初始分割,未知像素归为前景类,背景像素归为背景类。
matte在TrimapBackground像素集中初始化为MatteBackground(Matte 背景),在TrimapUnknown像素集中初始化为MatteForeground(Matte 前景)。
trimap 表示用户输入的正确分割,matte表示grabcut算法产生的分割。
step 3.为初始前景和背景创建GMM
根据matte,分别为MatteForeground 和 MatteBackground 区域创建具有K个高斯分量的GMM。首先将两个区域划分为K个像素簇。然后根据每个簇中的颜色初始化高斯分量。有许多种聚类算法可用于此步骤。