计算每张图像处理前后的psnr、ssim,然后进行除以总数,分别得到psnr和ssim均值。
只需要修改路径进行指定文件夹的循环计算即可。
import os
import numpy as np
import math
import cv2
import time
start = time.clock()
#当中是你的程序
def psnr(img1, img2):
mse = np.mean((img1/1. - img2/1.) ** 2 )
if mse < 1.0e-10:
return 100*1.0
return 10 * math.log10(255.0*255.0/mse)
def mse(img1,img2):
mse = np.mean((img1/1. - img2/1.) ** 2 )
return mse
def ssim(y_true , y_pred):
u_true = np.mean(y_true)
u_pred = np.mean(y_pred)
var_true = np.var(y_true)
var_pred = np.var(y_pred)
std_true = np.sqrt(var_true)
std_pred = np.sqrt(var_pred)
c1 = np.square(0.01*7)
c2 = np.square(0.03*7)
ssim = (2 * u_true * u_pred + c1) * (2 * std_pred * std_true + c2)
denom = (u_true ** 2 + u_pred ** 2 + c1) * (var_pred + var_true + c2)
return ssim / denom