0
我有一個描述圖像的標籤貼圖矩陣。如圖所示,它在Matlab中可視化爲
imshow(im,[])
如何提取描述每個標籤區域的多邊形邊界?對於所有標籤,我會有一組多邊形邊界。提取所有這些多邊形邊界的最有效方法是什麼?
我有一個描述圖像的標籤貼圖矩陣。如圖所示,它在Matlab中可視化爲
imshow(im,[])
如何提取描述每個標籤區域的多邊形邊界?對於所有標籤,我會有一組多邊形邊界。提取所有這些多邊形邊界的最有效方法是什麼?
您可以簡單地使用imcontour
或bwboundaries
。下面是一個爲例:
% Get the values in your image
val = unique(im);
% Pre-allocate output
C = cell(numel(val),1);
% Here we go
for i = 1:numel(val)
C{i} = bwboundaries(im==val(i));
end
輸出C
將是細胞的細胞,含有該輪廓。
注意:您的原始圖像看起來像是原始轉換爲灰色級別的幾個級別。爲了減少邊界處的噪聲,您可能需要考慮 應用
imfilter
和filter
的中值濾波器。
謝謝。這真的有用! – emilywuq 2015-02-11 19:29:20
「[B,L] = bwboundaries(BW,'noholes');」,這可能對你有幫助。 「B」包含所有組件邊界的值。 – Damon 2015-02-11 05:10:47