Skimage.measure 的compare_psnr和compare_ssim的改动

Skimage.measure 的compare_psnr和compare_ssim的改动

最近看一个代码里面计算psnr和ssim使用的是老版本的用法,代码跑不起来。

from skimage.measure import  compare_psnr,compare_ssim

查阅之后发现是新版本废弃了这两个方法。然后在API文档中搜索找到了新版本应该使用的API

from skimage.metrics import structural_similarity as compare_ssim
from skimage.metrics import peak_signal_noise_ratio as compare_psnr

就是把相关方法放到了metrics里面了,名字都从缩写变成了全名😄😄😄
在附上API说明吧。structural_similarity,peak_signal_noise_ratio

structural_similarity

skimage.metrics.structural_similarity(im1, im2, *, win_size=None, gradient=False, data_range=None, channel_axis=None, multichannel=False, gaussian_weights=False, full=False, **kwargs)

计算两个图片之间的平均结构相似指数。

参数:

im1, im2: ndarray
    两个图片,任何具有相同形状的维度。
win_size: int or None, optional
    用来比对的滑动窗口的变长。必须是奇数。如果gaussian_weights是True,将其忽略,窗口尺寸将依赖于sigma
gradient: bool, optional
    如果为True,也会返回相对于im2的梯度
data_range: float, optional
    输入图像的数据范围(最大和最小值之间可能的距离)使用默认,这会从图像数据类型中估计
channel_axis: int or None, optional
    如果为None,图像被假定为灰度图(单通道),否则,使用该参数索引轴的数组对应的通道。
multichannel: bool, optional
    如果为True,则将数组的最后一维视为通道。相似度计算是独立完成的每个通道,然后平均。此参数已弃用:请指定channel_axis。
gaussian_weights: bool, optional
    如果为True,则每个patch的均值和方差由宽度σ =1.5的归一化高斯核进行空间加权。
full: bool, optional
    如果为True,也返回完整的结构相似度图像。

返回值

mssim: float
    图像上的平均结构相似度指数。
grad: ndarray
    im1和im2之间的结构相似度梯度。这只在梯度设置为True时返回。
S: ndarray
    完整的SSIM映像。这只在full设置为True时返回。

最后再说一下,如果是以前的代码改成现在的这个structural_similarity,如果用了multichannel,他会提示使用channel_axis,选定通道的那个维度即可。

peak_signal_noise_ratio

skimage.metrics.peak_signal_noise_ratio(image_true, image_test, *, data_range=None)

给一个图片计算峰值信噪比

参数:

image_true: ndarray
Ground-truth图像,与im_test形状相同。

image_test: ndarray
测试图像

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

返回值

psnr: float
PSNR值度量

来源:哈土奇

物联沃分享整理
物联沃-IOTWORD物联网 » Skimage.measure 的compare_psnr和compare_ssim的改动

发表评论