MATLAB图像处理几个常用函数
一、MATLAB函数 bwareaopen——Remove small objects from binary image
Syntax:BW2 = bwareaopen(BW, P)
Description:从二进制图像中删除所有少于P个像素的连通区域(对象),从而生成一个二进制图像BW2。默认连通性是8。
二、MATLAB函数 bwarea——Area of objects in binary image
Syntax:total = bwarea(bw2)
Description:估计二进制图像BW中对象的面积。 total是一个标量,其值大致对应于图像中on像素的总数,但可能不完全相同,因为不同像素模式的权重不同。
三、MATLAB函数 regionprops——Measure properties of image regions
Syntax:STATS = regionprops(L, properties)
Description:测量标记矩阵L中每个标记区域的一组属性。L中各个正整数元素对应于不同标记区域。 例如,L中等于N的元素集对应于区域N,以此类推。STATS是一个结构数组,其长度等于BW中的对象数max(L(😃)。 结构数组的字段Properties表示每个区域的不同属性,具体见表1。
四、MATLAB函数bwlabel——Label connected components in 2-D binary image
Syntax:[L, num] = bwlabel(BW, n)
Description:返回BW中连通区域的数量num,L为BW标记后的矩阵。函数bwlabel,bwlabeln和bwconncomp都为计算二进制图像连通区域函数。
算法:
(1)Label connected components in 2-D binary image
[L, num] = bwlabel(BW, n) %标记BW中的连通区域并返回
(2)Compute the area of each component.
S = regionprops(L, ‘Area’);
(3)Remove small objects.
bw2 = ismember(L, find([S.Area] >= P));
表1 属性字符列表----度量图像区域的属性或功能
‘Area’ 图像各个区域中像素总个数
‘BoundingBox’ 包含相应区域的最小矩形
‘Centroid’ 每个区域的质心(重心)
‘MajorAxisLength’ 与区域具有相同标准二阶中心矩的椭圆的长轴长度(像素意义下)
‘MinorAxisLength’ 与区域具有相同标准二阶中心矩的椭圆的短轴长度(像素意义下)
‘Eccentricity’ 与区域具有相同标准二阶中心矩的椭圆的离心率(可作为特征)
‘Orientation’ 与区域具有相同标准二阶中心矩的椭圆的长轴与x轴的交角(度)
‘Image’ 与某区域具有相同大小的逻辑矩阵
‘FilledImage’ 与某区域具有相同大小的填充逻辑矩阵
‘FilledArea’ 填充区域图像中的on像素个数
‘ConvexHull’ 包含某区域的最小凸多边形
‘ConvexImage’ 画出上述区域最小凸多边形
‘ConvexArea’ 填充区域凸多边形图像中的on像素个数
‘EulerNumber’ 几何拓扑中的一个拓扑不变量——欧拉数
‘Extrema’ 八方向区域极值点
‘EquivDiameter’ 与区域具有相同面积的圆的直径
‘Solidity’ 同时在区域和其最小凸多边形中的像素比例
‘Extent’ 同时在区域和其最小边界矩形中的像素比例
‘PixelIdxList’ 存储区域像素的索引下标
‘PixelList’ 存储上述索引对应的像素坐标
注:资料来源于MATLAB官方手册和网络。