OpenCV2编程手册笔记之 5.6GrabCut提取前景

本文介绍了OpenCV的GrabCut算法用于从静态图像中精确提取前景物体,尽管其计算速度较慢,但结果更准确。文章详细解析了grabCut函数的参数及其工作原理,包括分割结果图像的四种数值含义。通过示例代码展示了如何使用compare函数和按位与操作处理结果图像,以获取最终的前景掩模,并将其应用在源图像上提取前景物体。
摘要由CSDN通过智能技术生成

相比分水岭算法,GrabCut算法不是基于数学形态学,虽然相比分水岭算法计算的复杂度更高,但是其产生的结果更加精确。

适用范围:从静态图像中提取前景物体。

缺点:运行计算速度较慢,无法对连续的视频文件进行处理

grabCut函数拥有七个参数,分别为

cv::grabCut(image,  //输入图像
        result,              //分割结果(这应该是一个掩模版)
        rectangle2,      //自定义矩形(包含前景)
        bkgModel, fgrModel,  //函数中的模型
        5,                    //迭代次数
        cv::GC_INIT_WITH_RECT); //矩形进行初始化

这个函数中,result这个分割结果图像可以有四种数值:

cv::GC_BGD;//确定属于背景元素
cv::GC_FGD;//确定属于前景元素
cv::GC_PR_BGD;//可能属于背景元素
cv::GC_PR_FGD;//可能属于前景元素

现在,我们使用compare函数对result进行比较赋值:(compare函数的原型在这里不过多解释)

将result中符合cv::GC_PR_FGD的值赋值给result,得到只有可能前景的result

也就是说,在应用grabCut函数之后,result有四个可能的值,所以这个时候如果你在grabCut函数之后加一句imshow,会得到一幅全黑图像

这时应用compare,可以将符合GC_PR_FGD的元素提取出来,这时再应用imsho

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值