regionprops
度量属性的图像区域
语法
描述
的regionprops
函数措施属性如面积、质心和边界框,每个对象(连接组件)在一个图像。regionprops
金宝app同时支持连续的区域和不连续的区域。
请注意
测量三维容积图像中的对象的性质,考虑使用regionprops3
代替。虽然regionprops
可以接受三维图像,regionprops3
金宝app支持三维图像的更多的统计数据。
当你打电话给regionprops
功能,你可以省略属性
参数,在这种情况下,函数返回“区域”
,“重心”
,“边界框(“大小)
测量。
措施为每个连接组件属性统计数据
= regionprops (CC
,属性
)CC
返回的,这是一个结构bwconncomp
。
还指定了返回的格式测量作为一个结构或一个表数组,使用统计数据
= regionprops (outputFormat
,___)outputFormat
论点。
例子
计算质心图像重叠的位置
一个二进制图像读入工作区。
BW = imread (“text.png”);
计算质心图像中连接组件使用regionprops
。的regionprops
函数返回一个结构数组的重心。
s = regionprops (BW,“重心”);
存储x- - -y质心的坐标为一个两列的矩阵。
质心=猫(1、s.Centroid);
显示二进制图像的质心位置叠加。
imshow (BW)在情节(质心(:1),重心(:,2)," b *’)举行从
评估中心和半径的圆形物体和阴谋
估计圆的中心和半径对象在一个图像和使用这些信息绘制圆的形象。在这个例子中,regionprops
返回测量区域属性表中。
一个图像读入工作区。
一个= imread (“circlesBrightDark.png”);
把输入图像变成一个二进制图像。
bw = < 50;imshow (bw)标题(“和圆圈图像”)
计算图像中区域的属性,并返回一个表中的数据。
统计= regionprops (“表”bw,“重心”,…“MajorAxisLength”,“MinorAxisLength”)
统计=3×3表重心MajorAxisLength MinorAxisLength ___________售予售予300 120 79.517 79.517 330.29 369.92 109.49 - 108.6 99.465 - 99.465 450 240
圆的中心和半径。
中心= stats.Centroid;直径=意味着([统计数据。MajorAxisLength stats.MinorAxisLength), 2);半径=直径/ 2;
画出圆圈。
持有在viscircles(中心、半径)
ans =组属性:孩子们:[2 x1线]可见:在HitTest:显示所有属性
持有从
输入参数
BW
- - - - - -二进制图像
逻辑阵列
二进制图像,指定为一个逻辑阵列的维度。
数据类型:逻辑
CC
- - - - - -连接组件
结构
连接组件,指定为返回的结构bwconncomp
。
数据类型:结构体
l
- - - - - -标签图像
数字数组|分类数组
标签图像,指定为以下之一。
数值数组的维度。像素标记
0
是背景。像素标记1
形成了一个对象;像素标记2
构成第二个对象;等等。regionprops
对待negative-valued像素作为背景和轮下来输入像素不是整数。你可以得到一个数字标签图像标记等功能分水岭
或labelmatrix
。一个分类数组。每个类别对应一个不同的地区。
数据类型:单
|双
|int8
|int16
|int32
|uint8
|uint16
|uint32
|分类
属性
- - - - - -类型的测量
“基本”
(默认)|以逗号分隔的字符串标量或特征向量|一系列字符串标量|单元阵列的特征向量|“所有”
测量类型,指定为一个以逗号分隔的字符串标量或特征向量,字符串标量、数组的单元阵列特征向量,或“所有”
或“基本”
。
如果您指定
“所有”
,然后regionprops
计算所有测量和形状,灰度图像,像素值测量。如果您指定
“基本”
,然后regionprops
只计算“区域”
,“重心”
,“边界框(“大小)
测量。
下表中列出的所有属性,提供形状测量。中列出的属性像素值测量表是有效的只有当你指定一个灰度图像。
形状测量
属性名 | 描述 | 一天的支金宝app持 | GPU的金宝app支持 | 代码生成 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
“区域” |
实际数量的像素区域,作为一个标量返回。这个值可以从返回的值略有不同 找到的面积相当于一个三维体积,使用 |
是的 | 是的 | 是的 | ||||||||
“边界框(“大小) |
的位置和尺寸最小的盒子包含地区,作为1 -(2 *返回问)向量,问是图像维数。第一个问元素的坐标的最小的角落。第二个问元素框的大小以及每个维度。例如,一个二维边界框与价值 |
是的 | 是的 | 是的 | ||||||||
“重心” |
质心的地区,作为1 -返回问向量,问是图像维数。的第一个元素 这个数字说明了质心和边界框不接触的区域。该地区由白色像素。绿色盒子边界框,红点是重心。 |
是的 | 是的 | 是的 | ||||||||
“循环” |
圆度的对象,作为结构字段返回
最大循环值是1。输入标签必须是一个矩阵与相邻地区或二进制图像。如果图像包含不接触的区域, |
二只 | 没有 | 是的 | ||||||||
“ConvexArea” |
的像素数量ConvexImage ,作为一个标量返回。 |
二只 | 没有 | 没有 | ||||||||
“ConvexHull” |
可以包含的最小凸多边形的区域,作为一个返回p2矩阵。矩阵的每一行包含x- - -y多边形的一个顶点的坐标。 | 二只 | 没有 | 没有 | ||||||||
“ConvexImage” |
形象,指定了凸包,船体内的所有像素填充(设置为在 ),返回为一个二进制图像。图像区域的边界框的大小。对船体穿过的边界像素,regionprops 使用描述的算法分类像素部分封闭的ROI。 |
二只 | 没有 | 没有 | ||||||||
“偏心” |
古怪的椭圆second-moments一样,作为一个标量返回。离心率的比率是椭圆的焦点之间的距离和其主要轴长度。的值在0和1之间。(0和1的退化情况。一个椭圆的离心率是0实际上是一个圆,而一个椭圆的离心率是1是一条线段)。 | 二只 | 是的 | 是的 | ||||||||
“EquivDiameter” |
圆的直径与同一地区,作为一个标量返回。计算为√4 *区域/ pi) 。 |
二只 | 是的 | 是的 | ||||||||
“EulerNumber” |
在该地区的对象数量-洞这些对象的数量,作为一个标量返回。这个属性只对二维标签支持矩阵。金宝appregionprops 使用8-connectivity计算欧拉数(也称为欧拉示性数)。学习更多的关于连接,看到的像素连接。 |
二只 | 没有 | 是的 | ||||||||
“程度” |
的像素区域的像素比例总边界框,作为一个标量返回。计算的区域 除以边界框的面积。 |
二只 | 是的 | 是的 | ||||||||
“极值” |
极值点在该地区,作为一个8-by-2矩阵返回。矩阵的每一行包含x- - -y之一的坐标点。向量的格式 这个数字说明了两种不同的极值区域。在左边的区域,每一个极值点是不同的。为该地区在右边,(如某些极值点 |
二只 | 是的 | 是的 | ||||||||
“FilledArea” |
的数量在 像素FilledImage ,作为一个标量返回。 |
是的 | 没有 | 是的 | ||||||||
“FilledImage” |
图像大小相同的边界框区域,作为一个二进制数组返回。的 |
是的 | 没有 | 是的 | ||||||||
“图像” |
图像大小相同的边界框区域,作为一个二进制数组返回。的在 像素对应于该地区,和其他所有像素从 。 |
是的 | 是的 | 是的 | ||||||||
“MajorAxisLength” |
长度(以像素为单位)的主要轴的椭圆的规范化第二中央的时刻,作为一个标量返回。 | 二只 | 是的 | 是的 | ||||||||
“MaxFeretProperties” |
Feret属性,包括最大Feret直径,其相对角度,和坐标值,作为结构返回字段:
输入可以是一个二进制图像,连接组件,或一个标签矩阵。 |
二只 | 没有 | 没有 | ||||||||
“MinFeretProperties” |
Feret属性,包括最低Feret直径,其相对角度,和坐标值,作为结构返回字段:
输入可以是一个二进制图像,连接组件,或一个标签矩阵。 |
二只 | 没有 | 没有 | ||||||||
“MinorAxisLength” |
长度(以像素为单位)的椭圆的短轴相同的归一化第二中央的时刻,作为一个标量返回。 | 二只 | 是的 | 是的 | ||||||||
“定位” |
之间的角x设在和椭圆的长轴second-moments一样,作为一个标量返回。价值是在度,从-90度到90度。这个数字说明了轴和方向的椭圆。左边的图中显示一个图像区域及其对应的椭圆。右边显示了相同的椭圆与固体蓝线代表轴。红点是焦点。方向是水平虚线之间的角度和主轴。 |
二只 | 是的 | 是的 | ||||||||
“周长” |
距离的边界地区作为一个标量返回。 |
二只 | 没有 | 是的 | ||||||||
“PixelIdxList” |
该地区的像素的线性指标,作为一个返回p元向量。 | 是的 | 是的 | 是的 | ||||||||
“PixelList” |
在该地区的像素的位置,作为一个返回p——- - - - - -问 矩阵。矩阵的每一行的形式(x y z……) 并指定一个像素的坐标。 |
是的 | 是的 | 是的 | ||||||||
“稳健” |
像素的比例也在该地区的凸包,作为一个标量返回。计算体积
|
二只 | 没有 | 没有 | ||||||||
“SubarrayIdx” |
的元素l 在对象边界框,返回包含指标,这样作为一个单元阵列L (idx {:}) 提取元素。 |
是的 | 是的 | 没有 |
在下表中像素值测量属性是有效的只有当你指定一个灰度图像,我
。
像素值测量
属性名 | 描述 | 一天的支金宝app持 | GPU的金宝app支持 | 代码生成 |
---|---|---|---|---|
“MaxIntensity” |
值最大的像素强度的区域,作为一个标量返回。 | 是的 | 是的 | 是的 |
“MeanIntensity” |
意味着所有的强度值在该地区,作为一个标量返回。 | 是的 | 是的 | 是的 |
“MinIntensity” |
价值最低的像素强度在该地区,作为一个标量返回。 | 是的 | 是的 | 是的 |
“PixelValues” |
在该地区的像素数量,作为一个返回p1的向量,p该地区是像素的数量。向量中每个元素包含一个像素的值。 | 是的 | 是的 | 是的 |
“WeightedCentroid” |
区域中心位置和强度值的基础上,作为一个返回p——- - - - - -问 向量的坐标。的第一个元素WeightedCentroid 水平坐标(或x加权质心的坐标)。第二个元素是垂直坐标(或y协调)。所有其他的元素WeightedCentroid 维度的顺序。 |
是的 | 是的 | 是的 |
数据类型:字符
|字符串
|细胞
输出参数
更多关于
连续的区域和不连续的区域
相邻地区也被称为对象,连接组件,或斑点。一个标签图片l
包含连续的区域可能会看起来像这样:
1 1 0 2 2 0 3 3 1 1 0 2 2 0 3 3
的元素l
等于1属于第一个相邻区域或连接组件;的元素l
等于2属于第二个连接组件;等等。
不接触的区域区域可以包含多个连接组件。标签图像包含不接触的区域可能会看起来像这样:
1 1 0 1 1 0 2 2 1 1 0 1 1 0 2 2
l
等于1属于第一个地区是不接触的,包含两个连接组件。的元素l
等于2属于第二个区域,这是一个单一的连接组件。
提示
的
ismember
函数是用于创建一个二进制图像仅包含对象或满足特定条件的地区。例如,这些命令创建一个二进制图像仅包含的区域的面积大于80和离心率小于0.8。cc = bwconncomp (BW);统计= regionprops (cc,“区域”,“偏心”);idx =找到([统计数据。区域] > 80 & [stats.Eccentricity] < 0.8); BW2 = ismember(labelmatrix(cc),idx);
regionprops
利用中间结果的计算相关测量。因此,最快来计算所有所需的测量在单个调用regionprops
。大多数测量花很少时间来计算。然而,这些测量可以花费更长的时间,这取决于地区的数量
l
:“ConvexHull”
“ConvexImage”
“ConvexArea”
“FilledImage”
扩展功能
C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。
使用笔记和限制:
regionprops
金宝app支持C代码的生成(需要MATLAB®编码器™)。注意,如果您选择通用MATLAB主机
目标平台,regionprops
生成的代码使用了一个预编译的,特定于平台的共享库。使用一个共享库保存性能优化,但限制的目标平台可以生成代码。有关更多信息,请参见类型的代码生成图像处理工具箱的支持金宝app。金宝app只支持二进制图像或数字标签图片。输入标签图片不支持的数据类型分类。金宝app
指定输出类型
“表”
不支持。金宝app不支持通过单元阵列的属性。金宝app使用逗号分隔列表。
除了支持所有属性金宝app
“ConvexArea”
,“ConvexHull”
,“ConvexImage”
,“MaxFeretProperties”
,“MinFeretProperties”
,“稳健”
,“SubarrayIdx”
。
GPU的代码生成
生成NVIDIA的CUDA®代码®GPU使用GPU编码器™。
使用笔记和限制:
GPU编码器™生成优化的CUDA®代码只有二进制图像。代码生成的输入标签图片不优化。输入标签图片不支持的数据类型分类。金宝app
指定输出类型
“表”
不支持。金宝app不支持通过单元阵列的属性。金宝app使用逗号分隔列表。
只有
“区域”
,“边界框(“大小)
,“重心”
,“偏心”
,“EquivDiameter”
,“程度”
,“MajorAxisLength”
,“MinorAxisLength”
,“定位”
,“PixelIdxList”
“PixelList”
,“MaxIntensity”
,“MeanIntensity”
,“MinIntensity”
,“PixelValues”
,“WeightedCentroid”
属性的支持。金宝app
线程环境
在后台运行代码使用MATLAB®backgroundPool
与并行计算工具箱™或加速代码ThreadPool
。
这个函数完全支持线程的环境。金宝app有关更多信息,请参见MATLAB函数线程环境中运行。
GPU数组
加速代码运行在一个图形处理单元(GPU)使用并行计算工具箱™。
使用笔记和限制:
gpuArray
输入逻辑矩阵必须是一个二维或二维标签矩阵。连接组件结构(
CC
输入不支持)。金宝app不支持以下特性:金宝app
“ConvexArea”
,“ConvexHull”
,“ConvexImage”
,“循环”
,“EulerNumber”
,“FilledArea”
,“FilledImage”
,“MaxFeretProperties”
,“MinFeretProperties”
,“稳健”
。“结构”
是唯一的返回类型的支持。金宝app
有关更多信息,请参见图像处理在GPU上。
版本历史
之前介绍过的R2006aR2023a:新的圆方程
的regionprops
函数使用一个新的方程来计算循环。新方程消除偏见,导致过高的计算循环相对较小的对象。
如果你想复制循环测量使用旧的方程,然后您可以使用这些命令:
道具= regionprops(我,“区域”“周长”]);oldCircularity = 4 *π*道具。区域。/ props.Perimeter。^ 2;
R2022b:金宝app支持线程的环境
regionprops
现在支持金宝app线程的环境。
R2022a:regionprops
存储图像
,ConvexImage
,FilledImage
属性作为所有输入输出表中单元格数组
从R2022a开始,当一个表指定输出格式,regionprops
存储函数图像
,ConvexImage
,FilledImage
属性值作为细胞阵列,无论大小的图像对象。在以前的版本中,如果一个物体的边界框的大小是1×1或1 -n,这些属性都存储在输出表数值标量或行向量。
更新你的代码,访问的值图像
,ConvexImage
,FilledImage
属性用花括号使用点符号,{}
。例如,使用下面的代码来访问图像
属性第一对象的输入图像BW
。在以前的版本中,花括号不需要访问值存储为数字标量或行向量。
统计= regionprops (“表”BW,“图像”);imdata = stats.Image {1};
R2020a:金宝app支持分类数据
regionprops
现在支持金宝app分类图像数据。
R2019a:新的循环和Feret属性
regionprops
现在测量区域的循环和Feret属性在一个二进制图像。测量循环、最小Feret属性,或最大Feret属性,包括“循环”
,“MinFeretProperties”
,或“MaxFeretProperties”
分别指定属性
论点。
Apri esempio
如果dispone di una versione modificata di questo esempio。Desideri aprire questo esempio con le modifiche星期二吗?
第一MATLAB
海脂肪clic苏联合国collegamento切corrisponde questo第一MATLAB:
Esegui il第一inserendolo所以nella隙缝di第一MATLAB。我浏览器web非supportano金宝app comandi MATLAB。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。