图像质量评估指标函数的调用——skimage库的版本问题

1 调用skimage.measure问题

当在自己的电脑上运行下列评估图像质量的代码,没有问题


# 信息熵
en = skimage.measure.shannon_entropy(img_fu)

# 峰值信噪比
pnsr = skimage.measure.compare_psnr(img1, img_fu, data_range=255)

# 结构相似性
ssim = skimage.measure.compare_ssim(img1, img_fu, data_range=255)

# 均方误差
mse = skimage.measure.compare_mse(img1, img_fu)

# 均方根误差
rmse = math.sqrt(mse)

# 归一化均方根误差
nrmse = skimage.measure.compare_nrmse(img1, img_fu, norm_type='Euclidean')

但是在超算平台运行代码时,出现了下列报错
图像质量评估指标函数的调用——skimage库的版本问题_第1张图片
考虑了一下应该是版本问题,于是通过pip list查看scikit-image的版本,在本地电脑是0.15.0
图像质量评估指标函数的调用——skimage库的版本问题_第2张图片
但在超算上面的环境为0.16.2
图像质量评估指标函数的调用——skimage库的版本问题_第3张图片

2 解决办法

2.1 改变代码

将调用代码改成

# 信息熵
en = skimage.measure.shannon_entropy(img_fu)

# 峰值信噪比
pnsr = skimage.metrics.peak_signal_noise_ratio(img1, img_fu, data_range=255)

# 结构相似性
ssim = skimage.metrics.structural_similarity(img1, img_fu, data_range=255)

# 均方误差
mse = skimage.metrics.mean_squared_error(img1, img_fu)

# 均方根误差
rmse = math.sqrt(mse)

# 归一化均方根误差
nrmse = skimage.metrics.normalized_root_mse(img1, img_fu)

2.2 改变skimage库的版本

卸载scikit_image,然后通过pip install scikit_image-0.15.0下载可以使用原代码的版本

你可能感兴趣的:(python,经验分享)