Python 计算彩色图像信噪比

                       Python 计算彩色图像信噪比

Python下图像信噪比PSNR计算,主要有两种方法,方法一是使用skimage.measure库里的compare_psnr方法;方法二是根据公式自己定义psnr函数。

            公式
本代码块基于python3.5

from PIL import Image
import math
import numpy as np
import cv2
from skimage.measure import compare_psnr
#导入你要测试的图像
im1 = np.array (Image.open ('198.jpg'),'f')#将图像1数据转换为float型
im2 = np.array (Image.open ('198_result.bmp'),'f')#将图像2数据转换为float型
im2_2 = im2[:,:,0]
#im2_2 = im2

im1_2 = cv2.resize(im1,None,fx=2,fy=2,interpolation=cv2.INTER_CUBIC)
im1_2_2 = cv2.resize(im1_2,None,fx=0.5,fy=0.5,interpolation=cv2.INTER_CUBIC)
im2_2_2 = cv2.resize(im2_2,None,fx=0.5,fy=0.5,interpolation=cv2.INTER_CUBIC)
##############Method I
def psnr(img1, img2):
   mse = np.mean((img1/1.0 - img2/1.0) ** 2 )
   if mse < 1.0e-10:
      return 100
   return 10 * math.log10(255.0**2/mse)
##############Method II
p1 = compare_psnr(im1_2, im2_2,255)
p2 = compare_psnr(im1, im1_2_2,255)

print(psnr(im1_2,im2_2))
print(psnr(im1,im1_2_2))
print(psnr(im1,im2_2_2))
print(p1,p2)

文末附 https://blog.csdn.net/iliangwei0/article/details/78853586博客里Python 计算彩色图像信噪比的方法。

猜你喜欢

转载自blog.csdn.net/u013185349/article/details/85122008
今日推荐