2015-02-10 79 views
0

enter image description here查找標籤貼圖的多邊形邊界

我有一個描述圖像的標籤貼圖矩陣。如圖所示,它在Matlab中可視化爲

imshow(im,[]) 

如何提取描述每個標籤區域的多邊形邊界?對於所有標籤,我會有一組多邊形邊界。提取所有這些多邊形邊界的最有效方法是什麼?

+2

「[B,L] = bwboundaries(BW,'noholes');」,這可能對你有幫助。 「B」包含所有組件邊界的值。 – Damon 2015-02-11 05:10:47

回答

2

您可以簡單地使用imcontourbwboundaries。下面是一個爲例:

% 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將是細胞的細胞,含有該輪廓。

注意:您的原始圖像看起來像是原始轉換爲灰色級別的幾個級別。爲了減少邊界處的噪聲,您可能需要考慮 應用imfilterfilter的中值濾波器。

+0

謝謝。這真的有用! – emilywuq 2015-02-11 19:29:20