【笔记】OpenCV3 图像分割-用grabCut做前景检测

本文介绍了如何使用OpenCV3的grabCut算法进行图像前景检测。通过定义矩形区域并利用高斯混合模型(GMM)对背景和前景建模,算法能够自动区分图像中的前景和背景。在代码实现中,还加入了鼠标事件来获取前景矩形,最后通过处理掩码和前景背景模型得到最终的前景图像。
摘要由CSDN通过智能技术生成

grabCut算法的大致思路,摘抄。。。。


  1. 在图片中定义(一个或者多个)包含物体的矩形。
  2. 矩形外的区域被自动认为是背景。
  3. 对于用户定义的矩形区域,可用背景中的数据来区分它里面的前景和背景区域。
  4. 用高斯混合模型(GMM)来对背景和前景建模,并将未定义的像素标记为可能的前景或者背景。
  5. 图像中的每一个像素都被看做通过虚拟边与周围像素相连接,而每条边都有一个属于前景或者背景的概率,这是基于它与周边像素颜色上的相似性。
  6. 每一个像素(即算法中的节点)会与一个前景或背景节点连接。
  7. 在节点完成连接后(可能与背景或前景连接),若节点之间的边属于不同终端(即一个节点属于前景,另一个节点属于背景),则会切断他们之间的边,这就能将图像各部分分割出来
def grabCut(img, mask, rect, bgdModel, fgdModel, iterCount, mode=None)

输入参数:

img: 输入图像

mask: 掩码图像,用来确定哪些区域是背景、前景,哪些可能是前景/背景

0 GC_BGD    定义了明显的背景像素。     
1 GC_FGD    定义了一个明显的前景(对象)像素。 
2 GC_PR_BGD 定义了可能的背景像素。
3 GC_PR_FGD 定义了可能的前景像素。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值