由于版本问题,安装的最新版本的scikit-image,以下代码会报错:
from skimage.measure import compare_ssim, compare_psnr, compare_mse
将其改为:
from skimage.metrics import mean_squared_error as compare_mse
from skimage.metrics import peak_signal_noise_ratio as compare_psnr
from skimage.metrics import structural_similarity as compare_ssim
即可正常使用,完整代码如下:
from skimage.metrics import mean_squared_error as compare_mse
from skimage.metrics import peak_signal_noise_ratio as compare_psnr
from skimage.metrics import structural_similarity as compare_ssim
import cv2
img1 = cv2.imread('正确图像地址')
img2 = cv2.imread('待比较图像地址')
p = compare_psnr(img1, img2)
s = compare_ssim(img1, img2, multichannel=True) # 对于多通道图像(RGB、HSV等)关键词multichannel要设置为True
m = compare_mse(img1, img2)
print('PSNR:{},SSIM:{},MSE:{}'.format(p, s, m))
注意图像地址要避免中文路径,否则可能出现“AttributeError: 'NoneType' object has no attribute 'shape'”等错误。
本文介绍了在使用最新版本scikit-image时遇到的导入错误,提供了解决方案,即更新导入语句。示例代码展示了如何正确导入mean_squared_error, peak_signal_noise_ratio和structural_similarity,并计算图像的PSNR、SSIM和MSE。注意避免中文路径以防止额外错误。
947

被折叠的 条评论
为什么被折叠?



