基于形态学分水岭的图像分割算法摘要关键字图像分割是图像分析.DOCVIP

基于形态学分水岭的图像分割算法摘要关键字图像分割是图像分析.DOC

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于形态学分水岭的图像分割算法摘要关键字图像分割是图像分析

基于形态学分水岭的图像分割算法 摘要: 关键字: 图像分割是图像分析和处理中一个重要的研究方向,它是许多后续处理的基础。其分割结果的好坏对后续的图像分析、理解及识别都有很大影响。图像分割的算法有很多种,比较常用的有:快速聚类分割、颗粒分割、区域阈值法、边缘检测法以及基于形态学分水岭分割等。其中分水岭变换是图像分割中的一种经典有效的方法,它与经典的边缘检测算法相比,计算精度高,可有效的生成封闭的单像素轮廓,它以快速、有效、准确的分割结果越来越得到人们的重视。 分水岭图像分割方法采用的原理主要有两种: 第一种是模拟浸水过程。首先把一幅图像视为跌宕起伏的地形曲面,图像中每个象素的灰度值对应于地形中的高度,代表了该点在地形中的海拔。在这样的地形中,有盆地(图像中的局部极小区域)、山脊(分水岭)以及盆地和山脊之间的山坡。初始把图像这个有盆地也有山脊的地形模型垂直浸入湖水中,然后在各个盆地的最低处刺上各个洞,使水慢慢均匀浸入各个洞中,当水快要填满盆地,即某两个或多个盆地中的水将要相交融时,就在将要相交的两盆地之间修建堤坝,随着水位的逐渐上涨,最后各个盆地完全被水淹没,只有各个堤坝没被水淹没,而各个盆地又完全被堤坝所包围,从而可以得到各个堤坝(分水岭)和一个个被堤坝分开的盆地(目标物体),从而达到使粘连物体分割的目的。 第二种是模拟降水过程。这种方法也是基于地形学中的地貌特征,同样把一幅图像视为跌宕起伏的地貌模型。在模拟降水过程中,当雨滴落到山地模型上时,必将沿着山坡流人谷底,雨滴所经过的路线就是一个连通分支,也是雨滴到谷底的最陡峭路径,而通往同一谷底的所有连通分支就形成了一个蓄水盆地。 算法实现: % 分水岭算法 clear, close all; clc; PathName=t ;%t为自填内容,下面p类似 FileName=[PathName p];?? Image=imread(FileName); subplot(2,2,1);subimage(Image);title(原图);;pixval on; B=[1,1,1;1,1,1;1,1,1];%方形结构元 E8=[-1,0;-1,1;0,1;1,1;1,0;1,-1;0,-1;-1,-1];??? % 8-连通结构元坐标 maskLenth=length(E8);?????? % 结构元点的个数 [X,Y]=size(Image); %原始图像image 赋值给A1 n=1; A(:,:,n)=Image; M=zeros(X,Y); Mark_Image=zeros(X,Y); %产生距离图 while sum(sum(A(:,:,n)))~=0 ???? A(:,:,n+1)= imerode(A(:,:,n),B); ???? U(:,:,n)= (A(:,:,n)-A(:,:,n+1))*n; ???? M=M+U(:,:,n); ???? n=n+1; end n=n-1; subplot(2,2,2);imagesc(M,[0,n]);title(距离图); % 搜寻局部最大值,将其放入Deal_Image Deal_Image=zeros(X,Y); while n0 for high=1:X ????? for width=1:Y %******************************************************************** ????????? Mark_Bool=0; ????????? if M(high,width)==n %______________________________________________________________? ??????????? for dot=1:maskLenth ???????????????? i=E8(dot,1); j=E8(dot,2); ???????????????? if high+i=1 width+j=1 high+i=X width+j=Y M(high+i,width+j)M(high,width); ????????????????????? Mark_Bool=1;break; ???????????????? end % if_end ????????????? end % for dot_end %______________________________________________________________ ???????????? if?? Mark_Bool==0; ???????????????? Deal_Image(high,width)=M(high,width); ????????????

文档评论(0)

2105194781 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档