基于形态学分水岭的图像分割算法.doc

基于形态学分水岭的图像分割算法.doc

ID:59395375

大小:58.00 KB

页数:5页

时间:2020-05-29

基于形态学分水岭的图像分割算法.doc_第1页
基于形态学分水岭的图像分割算法.doc_第2页
基于形态学分水岭的图像分割算法.doc_第3页
基于形态学分水岭的图像分割算法.doc_第4页
基于形态学分水岭的图像分割算法.doc_第5页
资源描述:

《基于形态学分水岭的图像分割算法.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于形态学分水岭的图像分割算法摘要:图像分割是图像分析和处理中一个重要的研究方向,它是许多后续处理的基础。其分割结果的好坏对后续的图像分析、理解及识别都有很大影响。图像分割的算法有很多种,比较常用的有:快速聚类分割、颗粒分割、区域阈值法、边缘检测法以及基于形态学分水岭分割等。其中分水岭变换是图像分割中的一•种经典有效的方法,它与经典的边缘检测算法相比,计算精度高,可有效的生成封闭的单像素轮廓,它以快速、有效、准确的分割结果越来越得到人们的重视。分水岭图像分割方法采用的原理主要有两种:第一种是模拟浸水过程。首先把-幅图像视为跌宕起伏的地形曲面,图像中每个象素的灰度值对应于

2、地形中的高度,代表了该点在地形中的海拔。在这样的地形中,有盆地(图像中的局部极小区域)、山脊(分水岭)以及盆地和山脊之间的山坡。初始把图像这个有盆地也有山脊的地形模型垂直浸入湖水中,然后在各个盆地的最低处刺上各个洞,使水慢慢均匀浸入各个洞中,当水快要填满盆地,即某两个或多个盆地中的水将要相交融时,就在将要相交的两盆地之间修建堤坝,随着水位的逐渐上涨,最后各个盆地完全被水淹没,只有各个堤坝没被水淹没,而各个盆地又完全被堤坝所包围,从而可以得到各个堤坝(分水岭)和一•个个被堤坝分开的盆地(目标物体),从而达到使粘连物体分割的目的。第二种是模拟降水过程。这种方法也是基于地形学

3、中的地貌特征,同样把-幅图像视为跌宕起伏的地貌模型。在模拟降水过程中,当雨滴落到山地模型上时,必将沿着山坡流人谷底,雨滴所经过的路线就是一个连通分支,也是雨滴到谷底的最陡峭路径,而通往同一谷底的所有连通分支就形成了一个蓄水盆地。算法实现:%分水岭算法clear,closeall;clc;Pathname='t';%t为自填内容,下面p类似Fi1eName=[PathName'p'];Image=imread(FileName);subplot(2,2,1);subimage(Image);title(J原图');;pixvalon;B=[l,1,1;1,1,1;1,1,

4、1];%方形结构元E8=[-l,0;-l,l;0,1;1,1;1,0;1,-1%8一连通结构元坐标maskLenth二length(E8);%结构元点的个数[X,Y]=size(Image);%原始图像image赋值给Aln=l;A(:,:,n)=Image;M=zeros(X,Y);Mark_Image=zeros(X,Y);%产生距离图whi1esum(sum(A(:,:,n)))、二0A(:,:,n+l)=imerode(A(:,n),B);U(:,:,n)=(A(:,:,n)-A(:,:,n+l))*n;M=M+U(:,:,n);n=n+l;endn=n-l;s

5、ubplot(2,2,2);imagesc(M,[0,n]);titleC距离图’);%搜寻局部最大值,将其放入DealImageDealImage二zeros(X,Y);whilen>0forhigh=l:Xforwidth=l:YMarkBoo1=0;ifM(high,width)==n%fordot=l:maskLenthi=E8(dot,1);j=E8(dot,2);ifhigh+i>=l&width+j>=l&high+i<=X&width+j<=Y&M(high+i,width+j)>M(high,width);MarkBool=1;break;end%if

6、endend%fordotend%ifMarkBool==0;DealImage(high,width)=M(high,width);end%ifend%end%ifendJi70end%for-endend%for~endn=n~l;end%whilen=0endDealImage=[DealImage>=l]subplot(2,2,3);subimage(DealImage);title(,输出图像');Mark_Number=l;whi1en>0forhigh=l:Xforwidth=l:YMarkBool=0;I.*■>//IifM(high,width)=

7、=n%fordot=l:maskLenthi=E8(dot,1);j=E8(dot,2);ifhigh+i>=l&width+j>=l&high+i<=X&width+j<=Y&MarkImage(high+i,width+j)>0;MarkImage(high,width)=MarkImage(high+i,width+j);MarkBool=1;break;end%ifendend%fordot_end%ifMark_Bool==0;MarkImage(high,width)=MarkNumber;MarkNumber二MarkNum

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。