-1
如何在連接組件分析的圖像中查找最小和最大孔數。我已經做了如何找到洞:(下面的代碼)在Matlab中查找連接組件的最小和最大孔數
I = imread('1.jpg');
B=bwlabel(I);
level = graythresh(I);
BW = im2bw(I,level);
numb=bweuler(BW,4);
如何在連接組件分析的圖像中查找最小和最大孔數。我已經做了如何找到洞:(下面的代碼)在Matlab中查找連接組件的最小和最大孔數
I = imread('1.jpg');
B=bwlabel(I);
level = graythresh(I);
BW = im2bw(I,level);
numb=bweuler(BW,4);
通過最小和最大的洞,我認爲你的意思是用最小和最大面積孔。您可以使用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]);
你沒有說如果你只想要區域或像素的地圖。您可以獲取最小/最大孔的索引,但通常它可能不是唯一的。
執行代碼時出現錯誤。該錯誤是在調用regionprops之前使用bwlabel(BW)或double(BW)將二進制圖像轉換爲標籤矩陣的 。 – user2127060
您可能正在使用與我不同的Matlab版本。在任何情況下,只要做它所說的:'rp = regionprops(bwlabel(holes));' – nhowe
我必須在連接組件(CC)中找到最小和最大尺寸的洞。當我執行使用regionprops(bwlabel ),它將打印min_hole_area = [],max_hole_area = [],將不打印任何值。 – user2127060