2013-04-15 43 views

回答

0

通過最小和最大的洞,我認爲你的意思是用最小和最大面積孔。您可以使用regionprops查找連接組件的區域。但首先你必須從背景區分洞。因此,我們排除觸摸圖像邊界的組件。

lbl = bwlabel(~BW); 
holes = ~(BW|ismember(lbl,unique([lbl([1 end],:) lbl(:,[1 end])']))); 

現在你想找到剩下的組件的最小和最大面積。

rp = regionprops(holes); 
min_hole_area = min([rp.Area]); 
max_hole_area = max([rp.Area]); 

你沒有說如果你只想要區域或像素的地圖。您可以獲取最小/最大孔的索引,但通常它可能不是唯一的。

+0

執行代碼時出現錯誤。該錯誤是在調用regionprops之前使用bwlabel(BW)或double(BW)將二進制圖像轉換爲標籤矩陣的 。 – user2127060

+0

您可能正在使用與我不同的Matlab版本。在任何情況下,只要做它所說的:'rp = regionprops(bwlabel(holes));' – nhowe

+0

我必須在連接組件(CC)中找到最小和最大尺寸的洞。當我執行使用regionprops(bwlabel ),它將打印min_hole_area = [],max_hole_area = [],將不打印任何值。 – user2127060

相關問題