声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

声振论坛 展示 科学计算 matlab 查看内容

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

2016-5-3 14:14| 发布者: Triste| 查看: 915| 评论: 0|原作者: 不详|来自: 新浪mimi的博客

摘要: 此程序为优化后的分水岭算法,避免了图像过分割 I= imread('D:\Images\pic_loc\1870405130305041503.jpg'); imshow(I); h=fspecial('sobel'); %h = fspecial(type) creates a two-dimensional filter h of the ...
此程序为优化后的分水岭算法,避免了图像过分割
  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


最新评论

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

GMT+8, 2024-5-10 07:13 , Processed in 0.065542 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部