Matlab 二值图像label regions

Posted yhl_leo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Matlab 二值图像label regions相关的知识,希望对你有一定的参考价值。


本系列文章由 @yhl_leo 出品,转载请注明出处。
文章链接: http://blog.csdn.net/yhl_leo/article/details/52862719


Matlab提供了现成的函数,可以快速实现二值图像的闭合区域标记,这里介绍三种常见情形:

  • 连通区域(connected components):如下图所示的,包含几个联通的闭合区域

方法1:bwlabel

im = imread('label.png');
im_bin = im2bw(im, 0.5);
lab = bwlabel(im_bin);
imagesc(wcodemat(lab));

方法2:bwboundaries

im = imread('label.png');
im_bin = im2bw(im, 0.5);
[B,L] = bwboundaries(im_bin,'holes');
imshow(label2rgb(L, @jet, [.5 .5 .5]));


  • 边界闭合区域(holes):如下图所示的,包含几个边界闭合的区域或称孔洞

方法1:imfill + bwlabel

im = imread('label2.png');
im_bin = im2bw(im, 0.5);
fill = imfill(im_bin, 'holes');
lab = bwlabel(fill);
imagesc(wcodemat(lab));

方法2:bwboundaries

im = imread('label2.png');
im_bin = im2bw(im, 0.5);
[B,L] = bwboundaries(im_bin,'holes');
imshow(label2rgb(L, @jet, [.5 .5 .5]))


  • 对于孔中有其他闭合区域的情形,分别使用以下四种方法,结果分别为:
[B,L] = bwboundaries(im_bin,'holes');
imshow(label2rgb(L, @jet, [.5 .5 .5]))

[B,L] = bwboundaries(im_bin,'noholes');
imshow(label2rgb(L, @jet, [.5 .5 .5]))

fill = imfill(im_bin, 'holes');
imagesc(wcodemat(bwlabel(fill)));

imagesc(wcodemat(bwlabel(im_bin)));

以上是关于Matlab 二值图像label regions的主要内容,如果未能解决你的问题,请参考以下文章

MATLAB:图像二值化互补图(反运算)(im2bw,imcomplement函数)

图像二值化后里面有白点,怎么去除

matlab怎么二值化

matlab 图像处理 二值化

图像二值化基于matlab C4.5决策树图像二值化含Matlab源码 2225期

在matlab中如何将灰度图像转化成二值图像??如何再转化回去?