MATLAB 提取頭發(最大連通域)


 1 I= imread('2.jpg');
 2 figure(1), imshow(I)
 3 R=I(:,:,1);
 4 G=I(:,:,2);
 5 B=I(:,:,3);
 6 [m,n]=size(r);
 7 mask=zeros(m,n);
 8 for i = 1:m
 9    for j = 1:n
10        if r(i,j)<70 && g(i,j)<70 && b(i,j)<70
11             mask(i,j)=1;
12         end
13     end
14 end
15 figure(2),imshow(mask)
16 [L,num]=bwlabel(mask,n);%n取8或4表示四連通或八連通區域,num表示連通域數目,L為輸出圖像矩陣,其元素值為整數,背景被標記為0,第一個連通區域被標記為1,第二個連通區域被標記為2,依此類推.所以你不明白的1,2,3即為第1,2,3個連通區域的標記
17 x=zero(1,sum);
18 for ii=1:num 19 x(ii)=sum(sum(L==ii)); 20 end 21 [m,ind]=max(x); 22 out=(L==ind);%L=ind的值為1,其它為0
23 figure(3),imshow(out)

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM