转载!
在matlab图像处理中太有用了,regionprops用来度量图像区域属性的函数。
函数:regionprops。顾名思义:它的用途是get the properties of region,即用来度量图像区域属性的函数。
语法
描述
如果 properties 没有指定或者等于 'basic',则属性: 'Area', 'Centroid', 和 'BoundingBox' 将被计算。下面的列表就是所有有效的属性字符串,它们大小写敏感并且可以缩写。
属性详细定义
函数regionprops用于提取图像中感兴趣区域的属性,包括以下几个内容:
'Area''EulerNumber''Orientation''BoundingBox''Extent''Perimeter''Centroid''Extrema''PixelIdxList''ConvexArea''FilledArea''PixelList''ConvexHull''FilledImage''Solidity''ConvexImage''Image''SubarrayIdx''Eccentricity''MajorAxisLength''EquivDiameter''MinorAxisLength'
翻译过来就是:
'Area'是标量,计算出在图像各个区域中像素总个数。
注意:这个数值可能与由函数 bwarea 计算的值有轻微的不同。对于这样一个数值,我们可以使用它除以整个图像区域的像素个数而得到图像比例,可以作为模式识别的候选特征,并且这个特征是仿射不变的。
EulerNumber:欧拉数
Orientation:方向
'BoundingBox'
是1行ndims(L)*2列的向量,即包含相应区域的最小矩形。包括矩形左上角坐标和长宽。
BoundingBox 形式为 [ul_corner width],这里 ul_corner 以 [x y z ...] 的坐标形式给出边界盒子的左上角、boxwidth 以 [x_width y_width ...] 形式指出边界盒子沿着每个维数方向的长度。注意:请在这熟悉一下函数rectangle的使用方法。
Extent:范围,长度
Perimeter:周长
'Centroid'是1行ndims(L)列的向量,给出每个区域的质心(重心)
Extrema:极值
MajorAxisLength'
是标量,与区域具有相同标准二阶中心矩的椭圆的长轴长度(像素意义下)本属性只支持二维标注矩阵。
'MinorAxisLength'
是标量,与区域具有相同标准二阶中心矩的椭圆的短轴长度(像素意义下)。本属性只支持二维标注矩阵。
'Eccentricity'
是标量,与区域具有相同标准二阶中心矩的椭圆的离心率(可作为特征)。本属性只支持二维标注矩阵。
'Orientation'
是标量,与区域具有相同标准二阶中心矩的椭圆的长轴与x轴的交角(度)。本属性只支持二维标注矩阵。我们可以考察离心率的变化趋势,得到对于整个区域中的各区域的似圆性如何的大致感觉。看出区域整体的似圆性好不好,实际上可以考虑使用离心率向量作为一个模式识别的特征。
'Image'
二值图像,与某区域具有相同大小的逻辑矩阵。你可以用这个属性直接将每个子区域提取出来,然后再作相应的处理!
'FilledImage'
与'Image'相同,唯一区别是这是个做了填充的逻辑矩阵!
'FilledArea'
是标量,填充区域图像中的 on 像素个数。
'ConvexHull'
是p行2列的矩阵,包含某区域的最小凸多边形。此矩阵的每一行存储此多边形一个顶点的xy坐标。此属性只支持2维标注矩阵。
'ConvexImage'
二值图像,用来画出上述的区域最小凸多边形。同时此凸包内的像素均打开,图像尺寸和此区域对应边界矩形相同。此属性只支持2维标注矩阵。例如:本例中的第2个子区域的最小凸多边形图形为。注意:此处函数roipoly很有用!
'ConvexArea'
是标量,填充区域凸多边形图像中的 on 像素个数。
'EulerNumber'
是标量,几何拓扑中的一个拓扑不变量--欧拉数,等于图像中目标个数减去这些目标中空洞的个数。此属性只支持2维标注矩阵。本例中的欧拉数均为1。
'Extrema'
8行2列矩阵,八方向区域极值点。矩阵每行存储这些点的xy坐标,向量格式为 [top-left top-right right-top right-bottom bottom-right bottom-left left-bottom left-top]。此属性只支持2维标注矩阵。
'EquivDiameter'
还有一些别的,用到了再完善,现在还不懂……