图像分割
引言:
图像分割是图像预处理的重要步骤之一,它的主要目标是将图像划分为不同的区域,这些区域与真实世界中的物体具有一定的关联成分。图像分割的方法大体分为以下三种:基于阈值的分割、基于边缘的分割和基于区域的分割。其中基于区域的分割较为常用。OpenCV提供了 分水岭算法 和 GrabCut算法,可以快速实现图像的分割。
本小节使用的测试图像为:
————————————————————————–
使用分水岭算法进行图像分割
各个步骤的运行结果如图:
最后的效果为:
————————————————————————–
使用GrubCut算法进行图像分割
本小节使用的测试图像为:
GrubCut算法的参数如下:
注意:
Initially user draws a rectangle around the foreground region (foreground region shoule be completely inside the rectangle)
也就是说,前景图必须完全包含在矩形内,即:初始化的矩形必须完全包含梅西~
GrubCut算法的运行结果如下:
附录:用C++写的GrubCut算法小例子
grubcut.cpp
测试用图为:
背景分割的结果如下:
可以看到,准确分割出了建筑物的主体部分