我有一个描述图像的labelmap矩阵。如图所示,它在Matlab中可视化
imshow(im,[])
如何提取描述每个标签区域的多边形边界?对于所有标签,我会有一组多边形边界。提取所有这些多边形边界的最有效方法是什么?
答案 0 :(得分:2)
您只需使用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
的中值过滤器。