matlab分水岭算法分割图像的结果说明_图像分割实战-分水岭分割方法和GrabCut 算法...

matlab分水岭算法分割图像的结果说明_图像分割实战-分水岭分割方法和GrabCut 算法..._第1张图片

1. 分水岭分割方法

它是依赖于形态学的,图像的灰度等级不一样,如果图像的灰度等级一样的情况下怎么人为的把它造成不一样?可以通过距离变换实现,这样它们的灰度值就有了阶梯状的变换。风水岭算法常见的有三种方法:(1)基于浸泡理论的分水岭分割方法;(2)基于连通图方法;(3)基于距离变换的方法。OpenCV 中是基于距离变换的分割方法,就相当于我们的小山头(认为造成的)。

基本的步骤:

matlab分水岭算法分割图像的结果说明_图像分割实战-分水岭分割方法和GrabCut 算法..._第2张图片

例子1 粘连对象分离和计数。

例子代码:

#include

效果:

matlab分水岭算法分割图像的结果说明_图像分割实战-分水岭分割方法和GrabCut 算法..._第3张图片

总结:有时候会导致碎片化,过度分割,因为二值化中如果有很多小的黑点或碎片,在分割的时候导致很多 mask ,即小山头太多了,这个时候我们要考虑怎么去合并它,可以通过联通区域的直方图,或者像素值均值相似程度等。

例子2:图像分割

#include

效果图:

matlab分水岭算法分割图像的结果说明_图像分割实战-分水岭分割方法和GrabCut 算法..._第4张图片

2. GrabCut 算法分割图像

GrabCut 算法的原理前面有介绍过,这里就不在介绍了,具体可以看下文章末尾往期推荐中阅读。下面例子实现图像中对象的抠图。

基本步骤:

matlab分水岭算法分割图像的结果说明_图像分割实战-分水岭分割方法和GrabCut 算法..._第5张图片

例子代码:

#include

效果图:

matlab分水岭算法分割图像的结果说明_图像分割实战-分水岭分割方法和GrabCut 算法..._第6张图片

matlab分水岭算法分割图像的结果说明_图像分割实战-分水岭分割方法和GrabCut 算法..._第7张图片

欢迎关注我的微信公众号“OpenCV图像处理算法”,主要是记录自己学习图像处理算法的历程,包括特征提取、目标跟踪、定位、机器学习和深度学习,每一个例子都会提供源码和例子所用的资料,欢迎同行的同学关注我和我一起虚度光阴吧!!!

你可能感兴趣的:(opencv,把3通道图像转成单通道)