声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2321|回复: 0

[图像处理] matlab实现分水岭算法处理图像分割

[复制链接]
发表于 2016-5-3 14:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
此程序为优化后的分水岭算法,避免了图像过分割
  1. I= imread('D:\Images\pic_loc\1870405130305041503.jpg');      
  2. imshow(I);  
  3. h=fspecial('sobel'); %h = fspecial(type) creates a two-dimensional filter h of the specified type. fspecial returns h as  
  4.                      %a correlation kernel, which is the appropriate form to use with imfilter. type is a string having one of these values.   
  5. fd=double(I);%double使数据变成双精度  
  6. g=sqrt(imfilter(fd,h,'replicate').^2+imfilter(fd,h','replicate').^2);  
  7. figure;  
  8. imshow(g);  
  9. g2=imclose(imopen(g,ones(3,3)),ones(3,3));  
  10. figure;  
  11. imshow(g2);  
  12. im=imextendedmin(g2,10);   %  
  13. Lim=watershed(bwdist(im)); %watershed分水岭算法 Lim的值greater than or equal to 0,等于0是分水岭脊像素  
  14. em=Lim==0;  
  15. g3=imimposemin(g2,im|em);  
  16. g4=watershed(g3);  
  17. figure;  
  18. imshow(g4);  
  19. g5=I;  
  20. g5(g4==0)=255;  
  21. figure;  
  22. imshow(g5);
复制代码
实验结果:
1.jpg
转自:http://blog.sina.com.cn/s/blog_6c41e2f30101c489.html

回复
分享到:

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-1 10:15 , Processed in 0.094802 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表