• MATLAB连通域标记函数


    L = bwlabel(BW,n)
    返回一个和BW大小相同的L矩阵,包含了标记了BW中每个连通区域的类别标签,这些标签的值为1、2、num(连通区域的个数)。n的值为4或8,表示是按4连通寻找区域,还是8连通寻找,默认为8。

    [L,num] = bwlabel(BW,n)
    这里num返回的就是BW中连通区域的个数。

    一些连通域处理函数,转自AmazingJack的专栏:http://m.blog.csdn.net/blog/AmazingJack/24417891

    1、 matlab函数bwareaopen──删除小面积对象
    格式:BW2 = bwareaopen(BW,P,conn)
    作用:删除二值图像BW中面积小于P的对象,默认情况下使用8邻域。
    算法:
    (1)Determine the connected components.
    L = bwlabeln(BW, conn);
    (2)Compute the area of each component.
    S = regionprops(L, 'Area');
    (3)Remove small objects.
    bw2 = ismember(L, find([S.Area] >= P));


    2、matlab函数bwarea──计算对象面积
    格式:total = bwarea(BW)
    作用:估计二值图像中对象的面积。
    注:该面积和二值图像中对象的像素数目不一定相等。

    3、matlab函数imclearborder──边界对象抑制
    格式:IM2 = imclearborder(IM,conn)
    作用:抑制和图像边界相连的亮对象。若IM是二值图,imclearborder将删除和图像边界相连的对象。默认情况conn=8。
    注:For grayscale images, imclearborder tends to reduce the overall intensity level in addition to suppressing border structures.
    算法:
    (1)Mask image is the input image.
    (2)Marker image is zero everywhere except along the border, where it equals the mask image.

    4、matlab函数bwboundaries──获取对象轮廓
    格式:B = bwboundaries(BW,conn)(基本格式)
    作用:获取二值图中对象的轮廓,和OpenCV中cvFindContours函数功能类似。B是一个P×1的cell数组,P为对象个数,每个cell 是Q×2的矩阵,对应于对象轮廓像素的坐标。

    5、matlab函数imregionalmin──获取极小值区域
    格式:BW = imregionalmin(I,conn)
    作用:寻找图像I的极小值区域(regional maxima),默认情况conn=8。
    Regional minima are connected components of pixels with a constant intensity value, and whose external boundary pixels all have a higher value.

    6、matlab函数bwulterode──距离变换的极大值
    格式:BW2 = bwulterode(BW,method,conn)
    作用:终极腐蚀。寻找二值图像BW的距离变换图的区域极大值(regional maxima)。用于距离变换的距离默认为euclidean,连通性为8邻域。

    7、regionprops统计被标记的区域的面积分布,显示区域总数。
    函数regionprops语法规则为:STATS = regionprops(L,properties)
    该函数用来测量标注矩阵L中每一个标注区域的一系列属性。
    L中不同的正整数元素对应不同的区域,例如:L中等于整数1的元素对应区域1;L中等于整数2的元素对应区域2;以此类推。
    返回值STATS是一个 长度为max(L()的结构数组,结构数组的相应域定义了每一个区域相应属性下的度量。
    Properties可以是由逗号分割的字符串列表、包含字符 串的单元数组、单个字符串'all'或者'basic'。如果properties等于字符串'all',则表1中的度量数据都将被计算;如果properties等于字符串'basic',则属性:'Area','Centroid'和'BoundingBox'将被计算。表1就是所有有效的属性字符串。



    表1 属性字符串列表

    properties值

     度量图像区域的属性或功能

    'Area'

    图像各个区域中像素总个数

    'BoundingBox'

    包含相应区域的最小矩形

    'Centroid'

    每个区域的质心(重心)

    'MajorAxisLength'

    与区域具有相同标准二阶中心矩的椭圆的长轴长度(像素意义下)

    'MinorAxisLength'

    与区域具有相同标准二阶中心矩的椭圆的短轴长度(像素意义下)

    'Eccentricity'

    与区域具有相同标准二阶中心矩的椭圆的离心率(可作为特征)

    'Orientation'

    与区域具有相同标准二阶中心矩的椭圆的长轴与x轴的交角(度)

    'Image'

    与某区域具有相同大小的逻辑矩阵

    'FilledImage'

    与某区域具有相同大小的填充逻辑矩阵

    'FilledArea'

    填充区域图像中的on像素个数

    'ConvexHull'

    包含某区域的最小凸多边形

    'ConvexImage'

    画出上述区域最小凸多边形

    'ConvexArea'

    填充区域凸多边形图像中的on像素个数

    'EulerNumber'

    几何拓扑中的一个拓扑不变量——欧拉数

    'Extrema'

    八方向区域极值点

    'EquivDiameter'

    与区域具有相同面积的圆的直径

    'Solidity'

    同时在区域和其最小凸多边形中的像素比例

    'Extent'

    同时在区域和其最小边界矩形中的像素比例

    'PixelIdxList'

    存储区域像素的索引下标


  • 相关阅读:

    模块
    序列化模块
    time模块、os模块、sys模块
    re模块、collections模块、random模块
    正则表达式
    递归函数和二分查找
    匿名函数
    推推导式和内置函数
    Java引用类型与值类型——Java面向对象基础(7)
  • 原文地址:https://www.cnblogs.com/Dontstop/p/4680646.html
Copyright © 2020-2023  润新知