参考博客 https://blog.youkuaiyun.com/u010886794/article/details/84784453
import numpy as np
import math
from PIL import Image
def psnr1(img1, img2):
mse = np.mean((img1 - img2) ** 2)
if mse < 1.0e-10:
return 100
return 10 * math.log10(255.0 ** 2 / mse)
def psnr2(img1, img2):
mse = np.mean((img1 - img2) ** 2)
if mse < 1.0e-10:
return 100
PIXEL_MAX = 255
return 20 * math.log10(PIXEL_MAX / math.sqrt(mse))
if __name__ == "__main__":
img1 = Image.open("img1.jpg")
img2 = Image.open("img2.jpg")
img1 = img1.resize((300,500))
img2 = img2.resize((300,500))
img1 = np.array(img1)
img2 = np.array(img2)
psnr1 = psnr1(img1, img2)
psnr2 = psnr2(img1, img2)
print(psnr1)
print(psnr2)
img1
img2
计算结果