图像处理中的标记分水岭分割算法如果图像中的目标物体是连接在一起的,则分割起来会更困难,分水岭分割算法经常用于处理这类问题,通常会取得比较好的效果
分水岭分割算法把图像看成一幅“地形图”,其中亮度比较强的区域像素值较大,而比较暗的区域像素值较小,通过寻找“汇水盆地”和“分水岭界限”,对图像进行分割
直接应用分水岭分割算法的效果往往并不好,如果在图像中对前景对象和背景对象进行标注区别,再应用分水岭算法会取得较好的分割效果
有很多图像处理工具箱函数可以用到,如fspecial、imfilter、watershed、lable2rgb、imopen、imclose、imreconstruct、imcomplement、imregionalmax、bwareaopen、graythresh、和imimposemin函数等
下面进行一个例子,步骤如下
1、读取图像并求其边界,代码如下
rgb=imread('pears
png');%读取原图像I=rgb2gray(rgb);%转化为灰度图像figure;subplot(121)%显示灰度图像imshow(I)text(732,501,'ImagecourtesyofCorel',
'FontSize',7,'HorizontalAlignment','right')hy=fspecial('sobel');%sobel算子hx=hy';Iy=imfilter(double(I),hy,'replicate');%滤波求Y方向边缘Ix=imfilter(double(I),hx,'replicate');%滤波求X方向边缘gradmag=sqrt(Ix