分水岭算法的概念及原理

上传人:s9****2 文档编号:507706484 上传时间:2023-05-09 格式:DOCX 页数:3 大小:12.53KB
返回 下载 相关 举报
分水岭算法的概念及原理_第1页
第1页 / 共3页
分水岭算法的概念及原理_第2页
第2页 / 共3页
分水岭算法的概念及原理_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《分水岭算法的概念及原理》由会员分享,可在线阅读,更多相关《分水岭算法的概念及原理(3页珍藏版)》请在金锄头文库上搜索。

1、分水岭算法Watershed Algorithm份水岭算法),顾名思义,就是根据分水岭的构成来考虑图像的分 割。现实中人们可以或者说可以想象有山有湖的景象,那么那一定是水绕山,山围水的情 形。当然在需要的时候,要人工构筑分水岭,以防集水盆之间的互相穿透。而区分高山 (plateaus)与水的界线,以及湖与湖之间的间隔或都是连通的关系,就是分水岭 (watershed)。为了得到一个相对集中的集水盆,那么让水涨到接近周围最高的山顶就可 以了,这样的话,我们就可以用来获取边界灰阶大,中间灰阶小的物体区域了,它就是集水 盆。分水岭算法的概念及原理分水岭分割方法,是一种基于拓扑理论的数学形态学的分割方

2、法,其基本思想是把图 像看作是测地学上的拓扑地貌,图像中每一点像素的灰度值表示该点的海拔高度,每一个局 部极小值及其影响区域称为集水盆,而集水盆的边界则形成分水岭。分水岭的概念和形成可 以通过模拟浸入过程来说明。在每一个局部极小值表面,刺穿一个小孔,然后把整个模型慢 慢浸入水中,随着浸入的加深,每一个局部极小值的影响域慢慢向外扩展,在两个集水盆汇 合处构筑大坝,即形成分水岭。分水岭的计算过程是一个迭代标注过程。分水岭比较经典的计算方法是L. Vin ce nt提 出的。在该算法中,分水岭计算分两个步骤,一个是排序过程,一个是淹没过程。首先对每 个像素的灰度级进行从低到高排序,然后在从低到高实现

3、淹没过程中,对每一个局部极小值 在h阶高度的影响域采用先进先出(FIFO)结构进行判断及标注。分水岭变换得到的是输入图像的集水盆图像,集水盆之间的边界点,即为分水岭。显 然,分水岭表示的是输入图像极大值点。因此,为得到图像的边缘信息,通常把梯度图像作 为输入图像,即g(x,y)=grad(f(x,y)=f(x,y)-f(x-1,y)2f(x,y)-f(x,y-1)20.5式中,f(x,y)表示原始图像,grad.表示梯度运算。分水岭算法对微弱边缘具有良好的响应,图像中的噪声、物体表面细微的灰度变化, 都会产生过度分割的现象。但同时应当看出,分水岭算法对微弱边缘具有良好的响应,可得 到封闭连续的

4、边缘。通过分水岭算法所得到的封闭的集水盆,为分析图像的区域特征提供了 可能。分水岭算法有时会产生过度分割,为了避免产生这种过度分割,通常可以采用两种处 理方法,一是利用先验知识删除无关边缘信息。二是可以修改梯度函数,使得集水盆只响应 所探测的目标。对于通过梯度函数降低低分水岭算法的过度分割,需要对梯度函数进行改进,一个简 单的改进方法是对梯度图像进行阈值处理,从而消除像素灰度值的微小变化引起过度分割。 即:g(x,y)=max(grad(f(x,y),g8)式中,ge表示阈值。程序可采用方法:用阈值限制梯度图像以达到消除灰度值的微小变化产生的过度分割, 获得适量的区域,再对这些区域的边缘点的灰

5、度级进行从低到高排序,然后在从低到高实现 淹没的过程,梯度图可由Sobel算子计算得到。对梯度图像进行阈值处理时,阈值的合理 选择对分割结果有较大的影响,因此,阈值的选取是影响图像分割效果的一个关键。该方法 的缺点是,通常一些实际图像可能含有微弱的边缘,灰度值变化不是特别明显,阈值选取过 大可能会消除这些微弱边缘。分水岭算法是数学形态学分割方法中的经典算法,它将图像看作是地形学上被水覆盖 的自然地貌,图像中的每一像素的灰度值表示该点的海拔高度,其每一个局部极小值及其影 响区域称为集水盆,集水盆的边界则是分水岭,在各极小区域的表面打一个小孔,同时让水 从小孔中涌出,并慢慢淹没极小区域周围的区域,

6、那么各极小区域波及的范围,即是相应的 集水盆,对应图像中的区域;不同区域的水流相遇时的界限,就是期望得到的分水岭,对应 区域的边缘。分水岭变换可以保证分割区域的连续性和封闭性。分水岭变换是从局部极小点开始,即只能是在梯度图中用, 原始图是转换后才能用于 分水岭变换的。一般图像中存在多个极小值点,通常会存在过分割现象,可以采用梯度阈值 分割改进或者采用标记分水岭算法将多个极小值区域连在一起。如果图像中的目标物体是连在一起的,则分割起来会更困难,分水岭算法经常用于处理 这类问题,通常会取得比较好的效果。分水岭分割算法把图像看成一副“地形图”,其中亮 度比较强的地区像素值较大,而比较暗的地区像素比较

7、小,通过寻找“汇水盆地”和“分水 岭界限”,对图像进行分割。步骤:1. 读取图像2. 求取图像的边界,在此基础上可直接应用分水岭分割算法,但效果不佳;3. 对图像的前景和背景进行标记,其中每个对象内部的前景像素都是相连的,背景里面 的每个像素值都不属于任何目标物体;4. 计算分割函数,应用分水岭分割算法的实现 注:直接用分水岭分割算法效果并不好,如果在图像中对前景和背景进行标注区别,再应用分水岭算法会取得较好的分割效果。例 步骤:1. 读取图像并求取图像的边界。rgb = imread(pears.png);%读取原图像I = rgb2gray(rgb);%转化为灰度图像figure; sub

8、plot(121)% 显示灰度图像imshow(I)text(732,501,Image courtesy of Corel,.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.A2 + Iy.A2);%求 摸 subplot(122); imshow(gra

9、dmag,), %显示梯度 title(Gradient magnitude (gradmag)2. 直接使用梯度模值进行分水岭算法:(往往会存在过的分割的情况,效果不好)L = watershed(gradmag);%直接应用分水岭算法Lrgb = label2rgb(L);%转化为彩色图像 figure; imshow(Lrgb), %显示分割后的图像 title(Watershed transform of gradient magnitude (Lrgb)3. 分别对前景和背景进行标记:本例中使用形态学重建技术对前景对象进行标记,首先 使用开操作,开操作之后可以去掉一些很小的目标。se

10、 = strel(disk, 20);%圆形结构元素Io = imopen(I, se);%形态学开操作figure; subplot(121)imshow(Io), %显示执行开操作后的图像title(Opening (Io)Ie = imerode(I, se);%对图像进行腐蚀Iobr = imreconstruct(Ie, I);% 形态学重建 subplot(122); imshow(Iobr), %显示重建后的图像 title(Opening-by-reconstruction (Iobr)Ioc = imclose(Io, se);%形 态学关操作figure; subplot(

11、121)imshow(Ioc), %显示关操作后的图像 title(Opening-closing (Ioc)Iobrd = imdilate(Iobr, se);%对图像进行膨胀Iobrcbr = imreconstruct(imcomplement(Iobrd), .imcomplement(Iobr);%形态学重建Iobrcbr = imcomplement(Iobrcbr);%图像求反 subplot(122); imshow(Iobrcbr), %显示重建求反后的图像 title(Opening-closing by reconstruction (Iobrcbr) fgm = imregionalmax(Iobrcbr);%局部极大值

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号