• 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

  • 相关阅读:
    移动端WEB开发真机测试
    前端自学路线之js篇
    学习提高你CSS技术的法则
    day-5元组专区
    day5-列表专区
    day4-字符串专区
    day2-day3基本数据类型专区
    day1-习题
    day1-python条件语句和基本数据类型
    day1-python初识以及变量
  • 原文地址:https://www.cnblogs.com/hehehaha/p/6332110.html
Copyright © 2020-2023  润新知