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