分水岭算法(完整版)_第1页
分水岭算法(完整版)_第2页
分水岭算法(完整版)_第3页
分水岭算法(完整版)_第4页
分水岭算法(完整版)_第5页
已阅读5页,还剩9页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

分水岭分割算法的实现

与分析11053413李小泷分水岭算法实现步骤:先把图片转化为灰度梯度级图像,在图像梯度空间内逐渐增加一个灰度阈值,每当它大于一个局部极大值时,就把当时的二值图像(只区分陆地和水域,即大于灰度阈值和小于灰度阈值两部分)与前一个时刻(即灰度阈值上一个值的时刻)的二值图像进行逻辑异或(XOR)操作,从而确定出灰度局部极大值的位置。根据所有灰度局部极大值的位置集合就可确定分水岭。rgb=imread('pears.png');%读取原图像imshow(rgb)title('原图')I=rgb2gray(rgb);%转化为灰度图像figure;subplot(121)%显示一行两列第1张imshow(I)title('原图灰度图像')hy=fspecial('sobel');%sobel算子hx=hy';Iy=imfilter(double(I),hy,'replicate');%滤波求y方向边缘Ix=imfilter(double(I),hx,'replicate');%滤波求x方向边缘gradmag=sqrt(Ix.^2+Iy.^2);%求摸subplot(122);imshow(gradmag,[]),%显示梯度title('(gradmag)梯度级')先做sobel算子用于边缘提取,然后转化为梯度级图像L=watershed(gradmag);%直接应用分水岭算法Lrgb=label2rgb(L);%转化为彩色图像figure;imshow(Lrgb),%显示分割后的图像title('分割梯度级图像(Lrgb)')Watershed是matlab自带的函数,调用这个函数后可直接应用分水岭分割算法,图像依稀可以看到物体的轮廓,但效果不佳。为使分水岭分割算法的效果更好,可分别对图像前景和背景进行标记:本例中使用形态学重建技术对前景对象进行标记,首先使用开操作,开操作之后可以去掉一些很小的目标title('开操作之后的图像(Io)')Ie=imerode(I,se);%对图像进行腐蚀Iobr=imreconstruct(Ie,I);%形态学重建subplot(122);imshow(Iobr),%显示重建后的图像title('打开重建(Iobr)')se=strel('disk',20);%圆形结构元素Io=imopen(I,se);%形态学开操作figure;subplot(121)imshow(Io),%显示执行开操作后的图像Ioc=imclose(Io,se);%形态学关操作figure;subplot(121)imshow(Ioc),%显示关操作后的图像title('关操作(Ioc)')Iobrd=imdilate(Iobr,se);%对图像进行膨胀Iobrcbr=imreconstruct(imcomplement(Iobrd),...imcomplement(Iobr));%形态学重建Iobrcbr=imcomplement(Iobrcbr);%图像求反subplot(122);imshow(Iobrcbr),%显示重建求反后的图像title('重建求反后的图像(Iobrcbr)')fgm=imregionalmax(Iobrcbr);%局部极大值figure;imshow(fgm),%显示重建后局部极大值图像title('重建后局部极大值图像(fgm)')I2=I;I2(fgm)=255;%局部极大值处像素值设为255figure;imshow(I2),%在原图上显示极大值区域title('原图上的极大值区域(I2)')se2=strel(ones(5,5));%结构元素fgm2=imclose(fgm,se2);%关操作fgm3=imerode(fgm2,se2);%腐蚀fgm4=bwareaopen(fgm3,20);%开操作I3=I;I3(fgm4)=255;%前景处设置为255figure;subplot(121)imshow(I3)%显示修改后的极大值区域title('修改后的极大值区域')此时再进行分水岭变换并显示得到的效果。bw=im2bw(Iobrcbr,graythresh(Iobrcbr));%转化为二值图像subplot(122);imshow(bw),%显示二值图像title('开关重建之后的阈值图像')D=bwdist(bw);%计算距离DL=watershed(D);%分水岭变换bgm=DL==0;%求取分割边界figure;imshow(bgm),%显示分割后的边界title('(bgm)分水岭法分割线')gradmag2=imimposemin(gradmag,bgm|fgm4);%置最小值L=watershed(gradmag2);%分水岭变换I4=I;I4(imdilate(L==0,ones(3,3))|bgm|fgm4)=255;%前景及边界处置255figure;subplot(121)imshow(I4)%突出前景及边界title('突出前景及边界')Lrgb=label2rgb(L,'jet','w','shuffle');%转化为伪彩色图像subplot(122);imshow(Lrgb)%显示伪彩色图像title('分水岭伪彩色图像')将以上参数改为0.4,0.5,0.6,0.7后的图片效果,就是色彩的浓淡产生了变化figure;im

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论