图像质量评价指标之 PSNR(峰值信噪比) python实现

PSNR(峰值信噪比)是单图像超分辨率重建中评价图像质量的一项重要指标,下面给出几种基于python语言的实现方法!

公式推导:

给定一个大小为 m×n 的干净图像 I 和噪声图像 K ,均方误差 (MSE) 定义为:

                                             

PSNR(dB) 就定义为:             

方法一:纯公式计算

import cv2
import numpy as np
import math
import os


def psnr1(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)
 
def psnr2(img1, img2):
   mse = np.mean( (img1/255. - img2/255.) ** 2 )
   if mse < 1.0e-10:
      return 100
   PIXEL_MAX = 1
   return 20 * math.log10(PIXEL_MAX / math.sqrt(mse))

方法二:基于TensorFlow方法

    # Read images from file.
    im1 = tf.decode_png('path/to/im1.png')
    im2 = tf.decode_png('path/to/im2.png')
    # Compute PSNR over tf.uint8 Tensors.
    psnr1 = tf.image.psnr(im1, im2, max_val=255)

    # Compute PSNR over tf.float32 Tensors.
    im1 = tf.image.convert_image_dtype(im1, tf.float32)
    im2 = tf.image.convert_image_dtype(im2, tf.float32)
    psnr2 = tf.image.psnr(im1, im2, max_val=1.0)
    # psnr1 and psnr2 both have type tf.float32 and are almost equal.

方法三:基于skimage方法

from skimage.measure import compare_psnr
psnr = compare_psnr(im1, im2, 255)

 

 

 

 

 

 

 

 

 

  • 5
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
PSNR(Peak Signal-to-Noise Ratio)是一个表示信号最大可能功率和影响它的表示精度的破坏性噪声功率的比值的工程术语。它常用对数分贝单位来表示,数值越大表示失真越小。PSNR是一种基于对应像素点间的误差的图像质量评价方法。然而,PSNR并未考虑到人眼的视觉特性,可能导致评价结果与人的主观感觉不一致的情况。\[2\] 相似性指标(SSIM)是一种用于衡量两张数位影像相似程度的指标。它从亮度、对比度和结构三个方面度量图像相似性,更符合人类视觉感官。SSIM的取值范围是\[0,1\],值越大表示图像失真越小。SSIM可以看作是失真影像的影像品质衡量指标,相较于传统的峰值信噪比PSNR),SSIM更能符合人眼对影像品质的判断。\[3\] MSSIM(Mean Structural Similarity)是一种平均结构相似性度量方法。它将图像分为多个窗口,计算每个窗口的均值、方差和协方差,并加权计算结构相似度SSIM。最后,将平均值作为两个图像的结构相似性度量。\[3\] 综上所述,PSNR是一种基于像素点间误差的图像质量评价方法,而SSIM是一种更符合人眼视觉感官的图像相似性度量方法。 #### 引用[.reference_title] - *1* [图像基础 PSNR 峰值信噪比](https://blog.csdn.net/wangkai001_tg/article/details/54016018)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [图像质量指标:峰值信噪比PSNR和结构相似性SSIM](https://blog.csdn.net/laonafahaodange/article/details/121726358)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [PSNR峰值信噪比(python代码实现+SSIM+MSIM)](https://blog.csdn.net/m0_63172128/article/details/125566173)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值