matlab-分水嶺アルゴリズム処理画像分割(分水嶺アルゴリズムで米粒を分割)

11031 ワード

個人用メールアドレス:[email protected]、ご質問がございましたらCSDNにご記入ください
コード実装:
f=imread('C:\Users\lenovo\Desktop\3(1).bmp');     %     
figure,imshow(f);        %       
title('    '); 
bw=imbinarize(f);    %          
figure;
imshow(bw);       
title('    ');      
bwc=~bw;    %     ,    
dst=bwdist(bwc);     %     
ws=watershed(-dst);   %      
figure;
imshow(ws);                                      
title('          ');                  
w=ws==0;
rf=bw&~w;  %                    
figure,imshow(rf);                        
title('                ');         

h=fspecial('sobel');    %       sobel  
fd=im2double(f);  %       -%          
sq=sqrt(imfilter(fd,h,'replicate').^2+imfilter(fd,h','replicate').^2);  
sqoc=imclose(imopen(sq,ones(3,3)),ones(3,3));  %       
wsd=watershed(sqoc);     %     
figure;
imshow(wsd);       
title('    ');            

wg=wsd==0;
rfg=f;
rfg(wg)=255;
figure;
imshow(rfg);                            
title('               ');      
im=imextendedmin(f,18);   %      ,                 。
%      imimposemin         
Lim=watershed(bwdist(im));
figure,imshow(Lim);                          
title('       ');                 
em=Lim==0;
rfmin=imimposemin(sq,im|em);
wsdmin=watershed(rfmin);
figure,imshow(rfmin);                  
title('  -       ');         
rfgm=f;
rfgm(wsdmin==0)=255;
figure,imshow(rfgm);       
title('             '); 

参考ブロガー:
Matlabに基づくマーキング分水嶺分割アルゴリズム分水嶺アルゴリズムの原理,改良及びmatlab実現分水嶺アルゴリズムmatlabの3つの実現方法
文章がいいと思う学生は面倒で手を動かして購読に注目してください.あなたのはきっと私の更新を続ける最大の支持に違いありません.