Matlab中一个很有用的函数:regionprops

来源:互联网 发布:tomcat端口有哪些 编辑:程序博客网 时间:2024/04/30 15:31

在matlab图像处理中太有用了,regionprops用来度量图像区域属性的函数。

函数:regionprops。顾名思义:它的用途是get the properties of region,即用来度量图像区域属性的函数。
语法    STATS = regionprops(L,properties)

        %bw=rgb2gray(bw);L必须来自二维图像(如灰度图像)
        %L = bwlabel(bw);语法中的L
        %s  = regionprops(L, 'centroid'); centroid为其中可以引用的属性
描述   

        测量标注矩阵L中每一个标注区域的一系列属性。L中不同的正整数元素对应不同的区域,例如:L中等于整数1的元素对应区域1;L中等于整数2的元素对应区域2;以此类推。返回值STATS是一个长度为max(L(:))的结构数组,结构数组的相应域定义了每一个区域相应属性下的度量。properties 可以是由逗号分割的字符串列表、饱含字符串的单元数组、单个字符串 'all' 或者 'basic'。如果 properties 等于字符串 'all',则所有下述字串列表中的度量数据都将被计算。

如果 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)列的向量,给出每个区域的质心(重心)

 注意:Centroid 的第一个元素是重心水平坐标(x坐标)、第二个元素是重心垂直坐标(y坐标)。Centroid 所有其它元素则按照维顺序排列。

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'


 

还有一些别的,用到了再完善,现在还不懂……

0 0