zoukankan      html  css  js  c++  java
  • Matlab 二值图像label regions


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


    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

  • 相关阅读:
    解决sql2008附加不了2005的数据库文件的问题
    方阵
    台阶问题
    螺旋矩阵
    兔子问题
    九乘九乘法口诀
    选猴王
    拿鸡蛋问题
    软工个人作业
    小学四则运算法则训练
  • 原文地址:https://www.cnblogs.com/hehehaha/p/6332110.html
Copyright © 2011-2022 走看看