2024年5月11日发(作者:)

Matlab图像处理函数 求偏心率等区

域的属性值

Matlab图像处理函数:regionprops

这里给出在Matlab图像处理工具箱中非常重要的一个图像分析函数:

regionprops。顾名思义:它的用途是get the properties of region,即用

来度量图像区域属性的函数。

语法

STATS=regionprops(L,properties)

描述

测量标注矩阵L中每一个标注区域的一系列属性。L中不同的正整数元素

对应不同的区域,例如:L中等于整数1的元素对应区域1;L中等于整数2的

元素对应区域2;以此类推。返回值STATS是一个长度为max(L(:))的结构数

组,结构数组的相应域定义了每一个区域相应属性下的度量。properties可以

是由逗号分割的字符串列表、饱含字符串的单元数组、单个字符串'all'或者

'basic'。如果properties等于字符串'all',则所有下述字串列表中的度量数

据都将被计算,如果properties没有指定或者等于'basic',则属性:

'Area','Centroid',和'BoundingBox'将被计算。下面的列表就是所有有效的属

性字符串,它们大小写敏感并且可以缩写。

属性字符串列表

AreaEquivDiameter MajorAxisLength BoundingBox EulerNumber

MinorAxisLength Centroid Extent Orientation ConvexArea Extrema

PixelIdxList ConvexHull FilledArea PixelList ConvexImage FilledImage

Solidity Eccentricity Image

属性详细定义

本部分将结合一个具体的例子说明各种字串相关属性的意义,矩阵取自在

蚁蛉模式识别中做过预处理后的斑纹分割图像,如下图:

这是一幅二值图像,在应用regionprops函数之前必须将其标注,可以调

用bwlabel函数和伪彩色处理,标注后的图像如下图:

下面基于以上的材料来考察属性的含义。

'Area'

是标量,计算出在图像各个区域中像素总个数。注意:这个数值可能与由

函数bwarea计算的值有轻微的不同。对于这样一个数值,我们可以使用它除以

整个图像区域的像素个数而得到斑纹比例,可以作为模式识别的候选特征,并

且这个特征是仿射不变的。在本例中最后计算出的面积向量是

[3.8952,9.7213,17.663,3.5762,1.3432,1.6958,0.41974,0.41974,21.625

,12.324,4.8187,1.5111]/10000.

'BoundingBox'

是1行ndims(L)*2列的向量,即包含相应区域的最小矩形。BoundingBox

形式为[ul_corner width],这里ul_corner以[x yz.]的坐标形式给出边界盒

子的左上角、boxwidth以[x_width y_width.]形式指出边界盒子沿着每个维数

方向的长度。本例的各部分区域最小矩形如下图!注意:请在这熟悉一下函数

rectangle的使用方法。

'Centroid'

是1行ndims(L)列的向量,给出每个区域的质心(重心)。注意:Centroid

的第一个元素是重心水平坐标(x坐标)、第二个元素是重心垂直坐标(y坐标)。

Centroid所有其它元素则按照维顺序排列。下图采用以中心为圆心的小圆来演

示质心检测的效果:

图中各质心坐标(标准化后的)依次为: