Matlab 二值图像label regions-演道网

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

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

1

方法1:bwlabel

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

2

方法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]));

3


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

4

方法1:imfill + bwlabel

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

5

方法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]))

6


7

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

11

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

8

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

9

imagesc(wcodemat(bwlabel(im_bin)));

10

本文永久

转载自演道,想查看更及时的互联网产品技术热点文章请点击http://go2live.cn