C++中怎么利用OpenCV实现图像分割

这篇文章将为大家详细讲解有关C++中怎么利用 OpenCV实现图像分割,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

专注于为中小企业提供成都网站制作、做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业沁水免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上1000家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

参数说明:

img:  输入图像

result:    分段结果 

              mask图像的值只能为下面下面4个值(PR,probably表示可能的):
              GC_BGD    = 0,  //背景
              GC_FGD    = 1,  //前景
              GC_PR_BGD = 2,  //可能背景
              GC_PR_FGD = 3   //可能前景

rect:    包含前景的矩形

bgdModel:   背景

fgdModel:    前景

iterCount:   迭代次数,必须大于0

mode:用于指示grabcut用什么函数进行操作

             GC_INIT_WITH_RECT  //用矩形框初始化

             GC_INIT_WITH_MASK  //用掩码图像初始化

             GC_EVAL                       //执行分割


代码演示

我们用的是上节课的鼠标回调事件的项目opencv--Grabcut

C++中怎么利用 OpenCV实现图像分割

定义了用GrabCut所用到的基本参数及方法

初始化mask,设置为背景

C++中怎么利用 OpenCV实现图像分割

然后设置接N键来进行GrabCut的图像分割

C++中怎么利用 OpenCV实现图像分割

鼠标按下事件里加入两个参数的初始化

C++中怎么利用 OpenCV实现图像分割

鼠标松开事件里对Mask进行重新定义

C++中怎么利用 OpenCV实现图像分割

初始化Mask的方法setROIMask

C++中怎么利用 OpenCV实现图像分割

执行GrabCut方法

C++中怎么利用 OpenCV实现图像分割

显示图像方法修改

C++中怎么利用 OpenCV实现图像分割

关于C++中怎么利用 OpenCV实现图像分割就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


本文名称:C++中怎么利用OpenCV实现图像分割
标题路径:http://scyanting.com/article/gieosc.html