由于版本问题,安装的最新版本的scikit-image,代码会报错:
from skimage.measure import compare_ssim, compare_psnr, compare_mse
将其改为:
from skimage.metrics import mean_squared_error as mse from skimage.metrics import peak_signal_noise_ratio as psnr from skimage.metrics import structural_similarity as ssim
即可正常使用,完整代码如下:
rom skimage.metrics import mean_squared_error as mse
from skimage.metrics import peak_signal_noise_ratio as psnr
from skimage.metrics import structural_similarity as ssim
import cv2
img1 = cv2.imread('正确图像地址')
img2 = cv2.imread('待比较图像地址')
p = psnr(img1, img2)
s = ssim(img1, img2, multichannel=True) # 对于多通道图像(RGB、HSV等)关键词multichannel要设置为True
m = mse(img1, img2)
print('PSNR:{},SSIM:{},MSE:{}'.format(p, s, m))
注意图像地址要避免中文路径,否则可能出现“AttributeError: 'NoneType' object has no attribute 'shape'”等错误。
参考文章:OpenCV-Python——图像PSNR、SSIM、MSE计算_米开朗琪罗儿的博客-CSDN博客



