用法:
cucim.skimage.measure.regionprops_table(label_image, intensity_image=None, properties=('label', 'bbox'), *, cache=True, separator='-', extra_properties=None)
计算图像属性并将它们作为pandas-compatible 表返回。
该表是将列名映射到值数组的字典。有关详细信息,请参阅下面的注释部分。
0.16 版中的新函数。
- label_image:(N, M[, P]) 数组
标记的输入图像。值为 0 的标签将被忽略。
- intensity_image:(M, N[, P][, C]) ndarray,可选
与标记图像大小相同的强度(即输入)图像,以及可选的多通道数据的额外维度。默认为无。
在 0.18.0 版中更改:添加了为通道提供额外维度的函数。
- properties:str 的元组或列表,可选
将包含在结果字典中的属性 有关可用属性的列表,请参阅
regionprops()
。用户应记住添加“label” 以跟踪区域身份。- cache:布尔型,可选
确定是否缓存计算的属性。缓存属性的计算速度要快得多,而内存消耗会增加。
- separator:str,可选
对于OBJECT_COLUMNS 中未列出的非标量属性,每个元素将出现在其自己的列中,该元素的索引与属性名称通过此分隔符分隔。例如,2D 区域的惯性张量将出现在四列中:
inertia_tensor-0-0
、inertia_tensor-0-1
、inertia_tensor-1-0
和inertia_tensor-1-1
(其中分隔符为-
)。对象列是不能以这种方式拆分的列,因为列数会根据对象而变化。例如,
image
和coords
。- extra_properties:可调用的迭代
添加不包含在 skimage 中的额外属性计算函数。属性的名称是从函数名称派生的,dtype 是通过在小样本上调用函数来推断的。如果额外属性的名称与现有属性的名称冲突,则额外属性将不可见并发出 UserWarning。属性计算函数必须将区域掩码作为其第一个参数。如果属性需要强度图像,它必须接受强度图像作为第二个参数。
- out_dict:dict
字典将属性名称映射到该属性的一组值,每个区域一个值。该字典可用作 pandas
DataFrame
的输入,以将属性名称映射到框架中的列,将区域映射到行。如果图像没有区域,则数组的长度为 0,但类型正确。
参数:
返回:
注意:
每列包含一个标量属性、一个对象属性或多维数组中的一个元素。
每个区域具有标量值的属性(例如 “eccentricity”)将显示为浮点数或 int 数组,其中该属性名称作为键。
给定图像维度的多维属性
of fixed size
,例如“centroid”(无论区域大小,每个质心在 3D 图像中都将具有三个元素),将被拆分为多个列,名称为 {property_name }{separator}{element_num}(用于 1D 属性)、{property_name}{separator}{elem_num0}{separator}{elem_num1}(用于 2D 属性)等等。对于没有固定大小的多维属性,例如“image”(区域的图像大小因区域大小而异),将使用对象数组,以对应的属性名称作为键。
例子:
>>> from skimage import data, util, measure >>> image = data.coins() >>> label_image = measure.label(image > 110, connectivity=image.ndim) >>> props = measure.regionprops_table(label_image, image, ... properties=['label', 'inertia_tensor', ... 'inertia_tensor_eigvals']) >>> props {'label': array([ 1, 2, ...]), ... 'inertia_tensor-0-0': array([ 4.012...e+03, 8.51..., ...]), ... ..., 'inertia_tensor_eigvals-1': array([ 2.67...e+02, 2.83..., ...])}
生成的字典可以直接传递给 pandas(如果已安装),以获得干净的 DataFrame:
>>> import pandas as pd >>> data = pd.DataFrame(props) >>> data.head() label inertia_tensor-0-0 ... inertia_tensor_eigvals-1 0 1 4012.909888 ... 267.065503 1 2 8.514739 ... 2.834806 2 3 0.666667 ... 0.000000 3 4 0.000000 ... 0.000000 4 5 0.222222 ... 0.111111
[5 行 x 7 列]
如果我们想测量一个不是内置属性的特性,我们可以定义自定义函数并将它们作为
extra_properties
传递。例如,我们可以创建一个自定义函数来测量一个区域的强度四分位数:>>> from skimage import data, util, measure >>> import numpy as np >>> def quartiles(regionmask, intensity): ... return np.percentile(intensity[regionmask], q=(25, 50, 75)) >>> >>> image = data.coins() >>> label_image = measure.label(image > 110, connectivity=image.ndim) >>> props = measure.regionprops_table(label_image, intensity_image=image, ... properties=('label',), ... extra_properties=(quartiles,)) >>> import pandas as pd >>> pd.DataFrame(props).head() label quartiles-0 quartiles-1 quartiles-2 0 1 117.00 123.0 130.0 1 2 111.25 112.0 114.0 2 3 111.00 111.0 111.0 3 4 111.00 111.5 112.5 4 5 112.50 113.0 114.0
相关用法
- Python cucim.skimage.measure.regionprops用法及代码示例
- Python cucim.skimage.measure.label用法及代码示例
- Python cucim.skimage.measure.moments_coords用法及代码示例
- Python cucim.skimage.measure.moments_normalized用法及代码示例
- Python cucim.skimage.measure.moments_central用法及代码示例
- Python cucim.skimage.measure.moments_coords_central用法及代码示例
- Python cucim.skimage.measure.perimeter用法及代码示例
- Python cucim.skimage.measure.moments用法及代码示例
- Python cucim.skimage.measure.centroid用法及代码示例
- Python cucim.skimage.measure.moments_hu用法及代码示例
- Python cucim.skimage.measure.profile_line用法及代码示例
- Python cucim.skimage.measure.block_reduce用法及代码示例
- Python cucim.skimage.morphology.dilation用法及代码示例
- Python cucim.skimage.morphology.closing用法及代码示例
- Python cucim.skimage.morphology.erosion用法及代码示例
- Python cucim.skimage.morphology.white_tophat用法及代码示例
- Python cucim.skimage.morphology.remove_small_holes用法及代码示例
- Python cucim.skimage.morphology.black_tophat用法及代码示例
- Python cucim.skimage.morphology.reconstruction用法及代码示例
- Python cucim.skimage.morphology.remove_small_objects用法及代码示例
注:本文由纯净天空筛选整理自rapids.ai大神的英文原创作品 cucim.skimage.measure.regionprops_table。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。