2015-02-10 77 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