skimage.metrics#

skimage.metrics.adapted_rand_error

计算 SNEMI3D 竞赛定义的自适应 Rand 错误。

skimage.metrics.contingency_table

返回匹配分割中所有区域的或然表。

skimage.metrics.hausdorff_distance

计算给定图像非零元素间的 Hausdorff 距离。

skimage.metrics.hausdorff_pair

返回在给定图像非零元素间 Hausdorff 距离之外的点对。

skimage.metrics.mean_squared_error

计算两幅图像间的均方误差。

skimage.metrics.normalized_mutual_information

计算归一化互信息 (NMI)。

skimage.metrics.normalized_root_mse

计算两幅图像间的归一化均方根误差 (NRMSE)。

skimage.metrics.peak_signal_noise_ratio

计算图像的信噪比 (PSNR)。

skimage.metrics.structural_similarity

计算两幅图像间的结构相似度平均值。

skimage.metrics.variation_of_information

返回与 VI 相关的对称条件熵。


skimage.metrics.adapted_rand_error(image_true=None, image_test=None, *, table=None, ignore_labels=(0,), alpha=0.5)[source]#

计算 SNEMI3D 竞赛中定义的 Adapted Rand error。 [1]

参数:
image_truendarray of int

与 im_test 形状相同的真实标签图像。

image_testndarray of int

测试图像。

tablescipy.sparse 数组,可选

使用 skimage.evaluate.contingency_table 构建的或有表。如果为 None,则会动态计算。

ignore_labels序列编号,可选

要忽略的标签。真实图像中的任何使用这些值标记的区域都不会计算在得分中。

alphafloat,可选

在 Adapted Rand error 计算中给与精度和召回的相对权重。

返回:
arefloat

Adapted Rand error。

precfloat

Adapted Rand precision:在测试标签图像真实图像中具有相同标签的像素对数,除以测试图像中的像素对数。

recfloat

Adapted Rand recall:在测试标签图像真实图像中具有相同标签的像素对数,除以真实图像中的像素对数。

备注

真实分割中标签为 0 的像素在得分中被忽略。

Adapted Rand error 的计算方式如下

\(1 - \frac{\sum_{ij} p_{ij}^{2}}{\alpha \sum_{k} s_{k}^{2} + (1-\alpha)\sum_{k} t_{k}^{2}}\),其中 \(p_{ij}\) 是像素在测试图像真图像中具有相同标签的概率,\(t_{k}\) 是像素在真图像中具有标签 \(k\) 的概率,\(s_{k}\) 是像素在测试图像中具有标签 \(k\) 的概率。

默认行为是在自适应兰德误差计算中对精度和召回进行相同的加权。当 alpha = 0 时,自适应兰德误差 = 召回。当 alpha = 1 时,自适应兰德误差 = 精度。

参考文献

[1]

Arganda-Carreras I, Turaga SC, Berger DR 等人。(2015) 众包创建用于连接组学的图像分割算法。前端。神经解剖。9:142。 DOI:10.3389/fnana.2015.00142

评估分割指标

评估分割指标

skimage.metrics.contingency_table(im_true, im_test, *, ignore_labels=None, normalize=False)[source]#

返回匹配分割中所有区域的或然表。

参数:
im_trueint 的 ndarray

与 im_test 形状相同的真实标签图像。

im_testint 的 ndarray

测试图像。

ignore_labels序列编号,可选

要忽略的标签。真实图像中的任何使用这些值标记的区域都不会计算在得分中。

normalize布尔值

确定偶然表是否按像素计数进行标准化处理。

返回:
contscipy.sparse.csr_matrix

偶然表。cont[i, j] 将等于在 im_true 中标记为 i 并且在 im_test 中标记为 j 的体素数。


skimage.metrics.hausdorff_distance(image0, image1, method='standard')[source]#

计算给定图像非零元素间的 Hausdorff 距离。

参数:
image0, image1ndarray

其中 True 表示包含在点集中的点。两个数组必须具有相同的形状。

method{‘standard’, ‘modified’}, 默认为‘standard’

用于计算豪斯多夫距离的方法。 standard 是标准豪斯多夫距离,而 modified 是改进的豪斯多夫距离。

返回:
distancefloat

使用欧几里得距离在 image0image1 中的非零像素坐标之间的豪斯多夫距离。

备注

豪斯多夫距离 [1]image0 上任意点到 image1 上其最近点之间的最大距离,反之亦然。改进的豪斯多夫距离 (MHD) 已被证明优于 Dubuisson 等人 [2] 在以下工作中定义的定向豪斯多夫距离 (HD)。此函数计算正向和反向平均距离并返回两者中的较大值。

参考文献

[2]

M. P. Dubuisson 和 A. K. Jain。用于对象匹配的改进的豪斯多夫距离。在 ICPR94,A:566-568 页,以色列耶路撒冷,1994 年。 DOI:10.1109/ICPR.1994.576361 http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.1.8155

示例

>>> points_a = (3, 0)
>>> points_b = (6, 0)
>>> shape = (7, 1)
>>> image_a = np.zeros(shape, dtype=bool)
>>> image_b = np.zeros(shape, dtype=bool)
>>> image_a[points_a] = True
>>> image_b[points_b] = True
>>> hausdorff_distance(image_a, image_b)
3.0

豪斯多夫距离

豪斯多夫距离

skimage.metrics.hausdorff_pair(image0, image1)[source]#

返回在给定图像非零元素间 Hausdorff 距离之外的点对。

豪斯多夫距离 [1]image0 上任意点到 image1 上其最近点之间的最大距离,反之亦然。

参数:
image0, image1ndarray

其中 True 表示包含在点集中的点。两个数组必须具有相同的形状。

返回:
point_a, point_barray

豪斯多夫距离在它们之间的一对点。

参考文献

示例

>>> points_a = (3, 0)
>>> points_b = (6, 0)
>>> shape = (7, 1)
>>> image_a = np.zeros(shape, dtype=bool)
>>> image_b = np.zeros(shape, dtype=bool)
>>> image_a[points_a] = True
>>> image_b[points_b] = True
>>> hausdorff_pair(image_a, image_b)
(array([3, 0]), array([6, 0]))

豪斯多夫距离

豪斯多夫距离

skimage.metrics.mean_squared_error(image0, image1)[source]#

计算两幅图像间的均方误差。

参数:
image0, image1ndarray

图像。任何维度,必须具有相同的形状。

返回:
msefloat

均方差 (MSE) 度量。

备注

0.16 版中已更改:此函数已从 skimage.measure.compare_mse 重命名为 skimage.metrics.mean_squared_error

结构相似性指数

结构相似性指数

使用 J 不变性校准去噪器的完整教程

使用 J 不变性校准去噪器的完整教程

skimage.metrics.normalized_mutual_information(image0, image1, *, bins=100)[source]#

计算归一化互信息 (NMI)。

\(A\)\(B\)的归一化互信息由以下公式给出:

.. math::

Y(A, B) = frac{H(A) + H(B)}{H(A, B)}

其中 \(H(X) := - \sum_{x \in X}{x \log x}\) 表示熵。

由 Colin Studholme 及其同事提出,应用于图像配准 [1]。其范围从 1(图像值完全不相关)到 2(图像值完全相关,无论其是正相关还是负相关)。

参数:
image0, image1ndarray

待比较的图像。这两个输入图像必须具有相同数量的维度。

binsint 或 int 序列,可选

联合直方图中每个轴的柱数。

返回:
nmifloat

bins 给定的粒度下,计算的两个数组之间的归一化互信息。较高的 NMI 意味着输入图像更相似。

引发:
ValueError

如果图像不具有相同数量的维度。

备注

如果这两个输入图像不同形状,则用零填充较小的图像。

参考文献

[1]

C. Studholme, D.L.G. Hill,和 D.J. Hawkes(1999)。三维医学图像对齐的重叠不变熵度量。模式识别 32(1):71-86 DOI:10.1016/S0031-3203(98)00091-0


skimage.metrics.normalized_root_mse(image_true, image_test, *, normalization='euclidean')[source]#

计算两幅图像间的归一化均方根误差 (NRMSE)。

参数:
image_truendarray

真实图像,与 im_test 形状相同。

image_testndarray

测试图像。

normalization{‘euclidean’, ‘min-max’, ‘mean’},可选

控制 NRMSE 分母中要使用归一化方法。文献中没有跨领域的标准归一化方法 [1]。此处可用的方法如下:

  • ‘euclidean’ :按 im_true 的平均欧几里德范数归一化

    NRMSE = RMSE * sqrt(N) / || im_true ||
    

    其中 || . || 表示弗罗贝尼乌斯范数,N = im_true.size。此结果等价于

    NRMSE = || im_true - im_test || / || im_true ||.
    
  • ‘min-max’ :按 im_true 的强度范围归一化。

  • ‘mean’ :按 im_true 的平均值归一化

返回:
nrmsefloat

NRMSE 度量。

备注

0.16 版本中更改:此函数已从 skimage.measure.compare_nrmse 重命名为 skimage.metrics.normalized_root_mse

参考文献


skimage.metrics.peak_signal_noise_ratio(image_true, image_test, *, data_range=None)[source]#

计算图像的信噪比 (PSNR)。

参数:
image_truendarray

真实图像,与 im_test 形状相同。

image_testndarray

测试图像。

data_rangeint,可选

输入图像的数据范围(最小值和最大可能值之间的距离)。默认情况下,这是根据图像数据类型估算出来的。

返回:
psnrfloat

PSNR 度量。

备注

0.16 版本中已更改: 此函数已从 skimage.measure.compare_psnr 重命名为 skimage.metrics.peak_signal_noise_ratio

参考文献

使用简单的图像拼接组合图像

使用简单的图像拼接组合图像

平移不变小波去噪

平移不变小波去噪

保留纹理的非局部均值去噪

保留纹理的非局部均值去噪

小波去噪

小波去噪

使用 J 不变性校准去噪器的完整教程

使用 J 不变性校准去噪器的完整教程

skimage.metrics.structural_similarity(im1, im2, *, win_size=None, gradient=False, data_range=None, channel_axis=None, gaussian_weights=False, full=False, **kwargs)[源代码]#

在两张图像之间计算均结构相似性指数。对于浮点数图像,请注意data_range 参数。

参数:
im1, im2ndarray

图像。任何具有相同形状的维度。

win_sizeint或 None,可选

比较中使用的滑动窗口的边长。必须是奇数。如果gaussian_weights 为 True,则忽略此值,窗口大小取决于sigma

gradientbool,可选

如果为 True,则还返回相对于 im2 的梯度。

data_rangefloat,可选

输入图像的数据范围(最大可能值与最小可能值之间的差)。默认情况下,根据图像数据类型进行估计。对于浮点图像数据,此估计值可能是错误的。因此,建议始终显式传递此标量值(见下文注释)。

channel_axisint 或无,可选

如果无,图像将被视为一个灰度(单通道)图像。否则,这个参数将指示数组中哪个轴与通道相关联。

在 0.19 版本中添加:channel_axis在 0.19 中添加。

gaussian_weights布尔值,可选

如果为 True,每个贴片的均值和方差将通过宽度为 sigma=1.5 的归一化高斯核进行空间加权。

full布尔值,可选

如果为 True,也将返回完整的结构相似性图像。

返回:
mssim浮点数

图像上的平均结构相似性指数。

gradndarray

im1 与 im2 之间的结构相似性的梯度 [2]。仅在将gradient设置为 True 时返回。

Sndarray

完整的 SSIM 图像。仅在将full设置为 True 时返回。

其他参数:
use_sample_covariance布尔值

如果为 True,则将协方差归一化为 N-1,而不是 N,其中 N 为滑动窗口内像素的数量。

K1浮点数

算法参数 K1(小常数,参见 [1])。

K2浮点数

算法参数 K2(小常数,参见 [1])。

sigma浮点数

gaussian_weights 为 True 时的高斯标准差。

备注

如果未指定data_range,则范围将根据图像数据类型自动猜测。然而,对于浮点图像数据,此估计值产生等于所需范围值两倍的结果,因为skimage.util.dtype.py中的dtype_range已定义了从 -1 到 +1 的间隔。这会产生 2 的估计值,而不是通常使用图像数据时最需要的 1(因为负光强度毫无意义)。如果使用类似 YCbCr 的颜色数据,请注意每个通道的范围是不同的(Cb 和 Cr 的范围是 Y 的两倍),因此不能使用此函数的单次调用来计算通道平均 SSIM,因为假设每个通道的范围相同。

要匹配 Wang 等人的实现。 [1],将gaussian_weights 设置为 True,sigma 设置为 1.5,use_sample_covariance 设置为 False,并指定data_range 参数。

在 0.16 版本中已更改:此函数已从skimage.measure.compare_ssim重命名为skimage.metrics.structural_similarity

参考文献

[1] (1,2,3)

王志、博维克、谢赫和西蒙切利(2004 年)。图像质量评估:从错误可见性到结构相似性。IEEE 图像处理事务,13,600-612。 https://ece.uwaterloo.ca/~z70wang/publications/ssim.pdf, DOI: 10.1109/TIP.2003.819861

[2]

阿瓦纳基(2009 年)。针对结构相似性进行优化的高斯全局直方图规格。光学评论,16,613-621。 arXiv:0901.0065 DOI: 10.1007/s10043-009-0119-z

结构相似性指数

结构相似性指数

skimage.metrics.variation_of_information(image0=None, image1=None, *, table=None, ignore_labels=())[源代码]#

返回与 VI 相关联的对称条件熵。 [1]

信息变异定义为 VI(X,Y) = H(X|Y) + H(Y|X)。如果 X 是地面实况分割,那么可以将 H(X|Y) 解释为欠分割的量,将 H(Y|X) 解释为过分割的量。换句话说,一个完美的过分割将具有 H(X|Y)=0,一个完美的欠分割将具有 H(Y|X)=0。

参数:
image0, image1int 数组

标记图像/分割,必须具有相同的形状。

tablecsr 格式的 scipy 稀疏数组,可选

使用 skimage.evaluate.contingency_table 构建的或然率表。如果为 None,将使用 skimage.evaluate.contingency_table 计算该或然率表。如果给出,将根据此表计算熵,并将忽略任何图像。

ignore_labels序列编号,可选

要忽略的标签。真实图像中的任何使用这些值标记的区域都不会计算在得分中。

返回:
vi形状为 (2,) 的浮点数组

image1|image0 和 image0|image1 的条件熵。

参考文献

[1]

玛丽娜·梅拉(2007 年),比较聚类——基于信息的距离,多变量分析杂志,第 98 卷,第 5 期,873-895 页,ISSN 0047-259X,DOI: 10.1016/j.jmva.2006.11.013

评估分割指标

评估分割指标