图像质量评价指标:PSNR

psnr是“Peak Signal to Noise Ratio”的缩写,即峰值信噪比,是一种评价图像的客观标准,它具有局限性,一般是用于最大值信号和背景噪音之间的一个工程项目。

修改修改的地方只有以下两行

 hr_path = "street_old/"+i+".png"# 放原始图片路径
 sr_path = "street_second_normal/"+i+".png" # 放提高亮度之后的路径 注意图片是jpg还是png

Python实现

from PIL import Image
import torch.nn as nn
from math import log10
import numpy as np
from torch import Tensor

for i in range(1, 51): # 循环50次是因为我有50组对比的图片

    def load_img(filepath, mode):
         img = Image.open(filepath).convert(mode)
         # y, _, _ = img.split()
         return img

    def compute_psnr(hr, sr):
         mse = nn.MSELoss()(hr, sr)
         psnr = 10 * log10(1 / mse)
         print(i, psnr)

    if __name__ == '__main__':
         i = str(i)
         hr_path = "street_old/"+i+".png"# 放原始图片路径
         sr_path = "street_second_normal/"+i+".png" # 放提高亮度之后的路径 注意图片是jpg还是png
         hr1 = load_img(hr_path, 'YCbCr')
         sr1 = load_img(sr_path, 'YCbCr')
         hr1 = np.array(hr1) / 255  # [0,1]
         sr1 = np.array(sr1) / 255
         hr1 = Tensor(hr1)
         sr1 = Tensor(sr1)
         compute_psnr(hr1, sr1)
         # street_new/ 卷积提亮
         # street_normal/ matlab普通提亮
         # street_second_normal/ python普通提亮

需要注意的是两个存放图片的文件夹里的图片数量要相等,上面的for循环就是指有多少张,按照你的实际图片数量修改就可以

你可能感兴趣的:(python,人工智能,python,深度学习,计算机视觉)