1.峰值信噪比PSNR

  • PSNR(Peak Signal to Noise Ratio),峰值信噪比,即峰值信号的能量与噪声的平均能量之比,通常表示的时候取
    log 变成分贝(dB),由于 MSE 为真实图像与含噪图像之差的能量均值,而两者的差即为噪声,因此 PSNR 即峰值信号能量与 MSE
    之比。

2.结构相似性SSIM

  • 作为结构相似性理论的实现,结构相似度指数从图像组成的角度将结构信息定义为独立于亮度、对比度的,反映场景中物体结构的属性,并将失真建模为亮度、对比度和结构三个不同因素的组合。用均值作为亮度的估计,标准差作为对比度的估计,协方差作为结构相似程度的度量。


3.均方差RMSE

  • 均方误差(Mean Square Error)反映的是变量间的差异程度,是一种基于像素误差的图像质量客观评价指标,用于衡量融合图像和理想参考图像之间的差异,MSE越小,表示融合图像质量越好。
  • 均方根误差(Root Mean Square Error)是一个翻译空间细节信息的评价指标

4.归一化均方根误差 NRMSE

  • 归一化均方根误差(normalized root mean square error)就是将RMSE的值变成(0,1)之间。

5.信息熵ENTROPY

import numpy as np
import math
import cv2
import os
from skimage.measure import compare_ssim
import skimage.measure
# 峰值信噪比
def psnr(target, ref):#将图像格式转为float64target_data = np.array(target, dtype=np.float64)ref_data = np.array(ref,dtype=np.float64)# 直接相减,求差值diff = ref_data - target_data# 按第三个通道顺序把三维矩阵拉平diff = diff.flatten('C')# 计算MSE值rmse = math.sqrt(np.mean(diff ** 2.))# 精度eps = np.finfo(np.float64).epsif(rmse == 0):rmse = epspsnr=20*math.log10(255.0/rmse)return psnr
# 结构相似性
def ssim(imageA, imageB):# 为确保图像能被转为灰度图imageA = np.array(imageA, dtype=np.uint8)imageB = np.array(imageB, dtype=np.uint8)# 通道分离,注意顺序BGR不是RGB(B1, G1, R1) = cv2.split(imageA)(B2, G2, R2) = cv2.split(imageB)# convert the images to grayscale BGR2GRAYgrayA = cv2.cvtColor(imageA, cv2.COLOR_BGR2GRAY)grayB = cv2.cvtColor(imageB, cv2.COLOR_BGR2GRAY)# 方法一#直接转换为灰度图,计算ssim(grayScore, diff) = compare_ssim(grayA, grayB, full=True)diff = (diff * 255).astype("uint8")# print("gray SSIM: {}".format(grayScore))# 方法二#分离每个通道,计算ssim,再求平均值(score0, diffB) = compare_ssim(B1, B2, full=True)(score1, diffG) = compare_ssim(G1, G2, full=True)(score2, diffR) = compare_ssim(R1, R2, full=True)aveScore = (score0 + score1 + score2) / 3# print("BGR average SSIM: {}".format(aveScore))return  aveScore
#
##数据集评估####
original_path=r"C:\study_he\exp_result\LOL15\high"
contrast_path=r"C:\study_he\RetinexNet-master\Retinex_n"
psnr_all=0
ssim_all=0
rmse_all=0
nrmse_all=0
entropy_all=0
length=len(os.listdir(original_path))
for file in os.listdir(original_path):original_img=os.path.join(original_path,file)contrast_img=os.path.join(contrast_path,file)original=cv2.imread(original_img)contrast = cv2.imread(contrast_img, 1)# 峰值信噪比psnrValue = psnr(original, contrast)# 结构相似性ssimValue = ssim(original, contrast)# 均方误差mse = skimage.measure.compare_mse(original, contrast)# 均方根误差rmse = math.sqrt(mse)# 归一化均方根误差nrmse = skimage.measure.compare_nrmse(original, contrast, norm_type='Euclidean')# 信息熵entropy = skimage.measure.shannon_entropy(contrast, base=2)psnr_all+=psnrValuessim_all+=ssimValuermse_all+=rmsenrmse_all+=nrmseentropy_all+=entropypsnr_avg=psnr_all/length
ssim_avg=ssim_all/length
rmse_avg=rmse_all/length
nrmse_avg=nrmse_all/length
entropy_avg=entropy_all/length
print(rmse_avg)
print(nrmse_avg)
print(ssim_avg)
print(psnr_avg)
print(entropy_avg)# #单张图像预测
# original = cv2.imread(r"C:\study_he\exp_result\LOL15\high\780.png")      # numpy.adarray
# contrast = cv2.imread(r"C:\study_he\RetinexNet-master\Retinex_n\780.png",1)
# #峰值信噪比
# psnrValue = psnr(original,contrast)
# #结构相似性
# ssimValue = ssim(original,contrast)
# # 均方误差
# mse = skimage.measure.compare_mse(original, contrast)
# # 均方根误差
# rmse = math.sqrt(mse)
# # 归一化均方根误差
# nrmse = skimage.measure.compare_nrmse(original, contrast, norm_type='Euclidean')
# # 信息熵
# entropy = skimage.measure.shannon_entropy(contrast, base=2)
# print(rmse)
# print(nrmse)
# print(ssimValue)
# print(psnrValue)
# print(entropy)

有参考图像的图像质量评估方法及代码(PSNR,SSIM,RMSE,NRMSE,ENTROPY)相关推荐

  1. 图像质量评估指标:PSNR / SSIM 原理及Python代码

    1. PSNR   PSNR(峰值信噪比,Peak Signal-to-Noise Ratio),用于衡量两张图像之间差异,例如压缩图像与原始图像,评估压缩图像质量:复原图像与ground truth ...

  2. 无参考图像评价指标NIQE——自然图像质量

    无参考图像评价指标NIQE--自然图像质量评价器 NIQE(Natural Image Quality Evaluator) 为何引入NIQE NIQE的背景 NIQE算法的具体过程 代码实现 NIQ ...

  3. 常用的图像质量评估方法

    目 录 1 SSIM 1.1 文字表达 1.2 数学表达 1.3 代码表达 2 PSNR 2.1 文字表达 2.2 数学表达 2.3 代码表达 3 ZNCC,NCC 3.1 文字表达 3.2 数学表达 ...

  4. 【图像处理】——图像质量评价指标信噪比(PSNR)和结构相似性(SSIM)(含原理和Python代码)

    目录 一.信噪比(PSNR) 1.信噪比的原理与计算公式 2.Python常规代码实现PSNR计算 3.TensorFlow实现PSNR计算 4.skimage实现PSNR计算 5.三种方法计算的结果 ...

  5. matlab无参考图像质量评价,无参考屏幕内容图像质量评价

    1 引言 1.1 研究背景及意义 随着计算机和移动互联网技术的快速发展, 多屏互动[.视频游戏[.远程教育等多客户端通信系统也得到了飞速的发展.在这类系统中, 各类终端之间可以相互通信, 以实现屏幕内 ...

  6. 【深度学习】CVPR 2022 | 百变发型!中科大/微软/港城大提出HairCLIP:基于文本和参考图像的头发编辑方法...

    图1 本方法单独地或联立地支持来自图像和文本域的条件输入以完成头发编辑 本文介绍我们在CVPR 2022关于基于文本和参考图像完成头发编辑的工作.该工作将文本和参考图像条件统一在了一个框架内,在单个模 ...

  7. php 自动处理小图的代码,php对图像的各种处理函数代码小结

    导语:PHP中图像处理是一个比较容易的事情,不知道你对了没有?下面的是百分网小编为大家搜集的php对图像的各种处理函数代码小结供大家参考. 一.创建图片资源 imagecreatetruecolor( ...

  8. php图像销毁_php对图像的各种处理函数代码小结

    php对图像的各种处理函数代码小结 导语:PHP中图像处理是一个比较容易的事情,不知道你对了没有?下面的是百分网小编为大家搜集的php对图像的各种处理函数代码小结供大家参考. 一.创建图片资源 ima ...

  9. CVPR2022-HairCLIP:基于文本和参考图像的头发编辑方法论文理解

    图1 图像.文本单独或联合编辑发型图 本文作者提出了一种新的头发编辑交互模式,可以根据用户提供的文本或参考图像单独或联合操作发型和发色属性. 前言: 本文是基于StyleCLIP和StyleGAN两种 ...

最新文章

  1. 使用Struts2防止表单重复提交
  2. 特征选择常用算法综述
  3. matlab的默认字体_matlab默认字体设置
  4. iOS 正确选择图片加载方式
  5. ElasticSearch index 剖析
  6. fastjson Features 说明
  7. AcWing 703. 数独检查
  8. 【计蒜客 - 程序设计竞赛】商业信息共享(Tarjan缩点)
  9. C++(2)--代码结构
  10. 关于ajax请求后台获取下拉列表用的数据
  11. NanShan即时通讯 ie6 ie7 ie8 不支持json 终极解放方案
  12. 华为云服务器入门初体验
  13. 苹果开发者账户需要同意并添加电话号码,苹果账号忘记验证问题解决方案
  14. javascript 语言国际化
  15. 概率论:均值、标准差、方差、协方差、矩
  16. MP4-M3U8在线P2P加速视频播放器PHP源码
  17. 动态规划算法(DP)
  18. QTreeView 和QTreeWidget
  19. Day13_01_Java中的加解密之Base64编码
  20. c++画蛋糕_生日蛋糕--C++

热门文章

  1. 计算机图形学---颜色视觉知识点
  2. Your branch is up to date with 'origin/master'.但是本地代码却不是最新的
  3. 电脑弹窗消息=springboot瘦包+PC消息提醒
  4. 基于C#+SQLServer开发的餐饮管理系统源码
  5. 植物神经紊乱会不会导致失眠
  6. 太方便了,告别「复制+粘贴」,Python 轻松实现 PDF 转文本模式~
  7. 1.3 计算机网络的功能
  8. 算法的末日来了!阿里裁掉大量算法,数量远超其他岗位,因为算法拿着高薪,就知道调参发论文!...
  9. 设计模式 | 备忘录模式及典型应用
  10. 数据分析调研报告_CodingPark编程公园