Python 不同分辨率图像峰值信噪比[PSNR]

news2024/9/23 21:30:48

PNNR:全称为“Peak Signal-to-Noise Ratio”,中文直译为峰值信噪比

前言

一、定义

二、Python代码

1.自定义

2.Tensorflow

总结


前言

峰值信噪比是一种衡量图像质量的指标,描述的是最大值信号与北京噪音之间的关系。

一般来说,PSNR高于40dB说明图像质量极好(即非常接近原始图像);在30—40dB通常表示图像质量是好的(即失真可以察觉但可以接受);在20—30dB说明图像质量差;低于20dB图像不可接受。


一、定义

对于两个m*n的单色图像XY,其均方误差(MSE)定义为

                                MSE=\frac{1}{mn}\sum_{i=0}^{m-1}\sum_{j=0}^{n-1}\left ( X|i,j|-Y|i,j|\right)^{2}

峰值信噪比(PSNR)定义为

                                PSNR=10*lg\left ( \frac{MAX_{I}^{2}}{MSE} \right )=20*lg\left ( \frac{MAX_{I}}{\sqrt{MSE}} \right )

其中MAX_{I}表示图像像素点的最大值,如果每个采样点用8位表示,那么最大值就是255。根据定义可知MSE越小,则PSNR越大,所以PSNR越大,代表图像质量越好。

针对彩色图像,通常有三种方法计算

1、分别计算RGB三个通道的PSNR,然后取平均值

2、计算RGB三通道的MSE,然后除以3

3、将图片转化为YCbCr格式,然后只计算Y分量(亮度分量)的PSNR

二、Python代码

1.自定义

import cv2 as cv 
import math
import numpy as np
 
def psnr1(img1,img2):
    #compute mse
    # mse = np.mean((img1-img2)**2)
    mse = np.mean((img1/1.0-img2/1.0)**2)
    #compute psnr
    if mse < 1e-10:
        return 100
    psnr1 = 20*math.log10(255/math.sqrt(mse))
    return psnr1

#像素归一化
def psnr2(img1,img2):
    mse = np.mean((img1/255.0-img2/255.0)**2)
    if mse < 1e-10:
        return 100
    psnr2 = 20*math.log10(1/math.sqrt(mse))
    return psnr2
 
imag1 = cv.imread("C:/Users/Server/Desktop/1.jpg")
imag2 = cv.imread("C:/Users/Server/Desktop/2.jpg")
print (imag1.shape)
#print(imag2.shape)
# imag2 = imag2.reshape(352,352,3)
#print(imag2.shape)
res1 = psnr1(imag1,imag2)
print("res1:",res1)
res2 = psnr2(imag1,imag2)
print("res2:",res2)

2.TensorFlow

'''
compute PSNR with tensorflow
'''
import tensorflow as tf

def read_img(path):
	return tf.image.decode_image(tf.read_file(path))

def psnr(tf_img1, tf_img2):
	return tf.image.psnr(tf_img1, tf_img2, max_val=255)

def _main():
	t1 = read_img('1.jpg')
	t2 = read_img('2.jpg')
	with tf.Session() as sess:
		sess.run(tf.global_variables_initializer())
		y = sess.run(psnr(t1, t2))
		print(y)
 
if __name__ == '__main__':
    _main()

总结

为了更好地展示结果,以下为两张图片的PSNR。

1(女)与1(女)的PSNR: 100
1(女)与2(男)的PSNR: 6.534605344887611

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/377052.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Allegro如何删除铜皮上多余的空洞操作指导

Allegro如何删除铜皮上多余的空洞操作指导 在做PCB设计的时候,设计铜皮的时候是不希望铜皮上有多余的空洞的,设计完成前需要把多余的空洞删除,如下图 如何删除,具体操作如下 点击Shape点击Manual Void/Cavity

springboot中集成redis,二次封装成工具类

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;** 雄雄的小课堂 ** 现在是&#xff1a;2023年2月28日11:01:56 前言 redis大家应该都不陌生&#xff0c;我们在好多场景下都会使用&#xff0c;最近在面试别人的时候&#xff0c;也会问一些关于redis的…

华为OD机试题,用 Java 解【求符合要求的结对方式】问题

最近更新的博客 华为OD机试题,用 Java 解【停车场车辆统计】问题华为OD机试题,用 Java 解【字符串变换最小字符串】问题华为OD机试题,用 Java 解【计算最大乘积】问题华为OD机试题,用 Java 解【DNA 序列】问题华为OD机试 - 组成最大数(Java) | 机试题算法思路 【2023】使…

博客系统--自动化测试

项目体验地址&#xff08;账号&#xff1a;123&#xff0c;密码&#xff1a;123&#xff09;http://120.53.20.213:8080/blog_system/login.html项目后端说明&#xff1a;http://t.csdn.cn/32Nnv项目码云Gitee地址&#xff1a;https://gitee.com/GoodManSS/project/tree/master…

【极狐 GitLab】在 web 端合并分支

一、概述 极狐GitLab是GitLab DevOps平台的中国发行版&#xff0c;一套完备的一站式DevOps平台&#xff0c;从根本上改变了开发、安全和运维团队协作和软件构建方式。极狐GitLab从构思到生产发布&#xff0c;帮助团队提高生产效率&#xff0c;将迭代周期从数周缩短至几分钟&am…

【Spring事物三千问】Spring的事务管理与MyBatis事物管理结合的原理

Spring的事务管理与MyBatis事物管理结合的原理前言正文原生的 MyBatis 的事务处理SqlSessionTransactionMyBatis 事务管理 与 Spring 事务管理的融合SpringManagedTransactionSqlSessionTemplateSqlSessionInterceptormybatis-spring 融合的原理连接获取 & 开启事务连接的关…

【Linux】理解进程地址空间

&#x1f34e;作者&#xff1a;阿润菜菜 &#x1f4d6;专栏&#xff1a;Linux系统编程 ​我们在学习C语言的时候&#xff0c;都学过内存区域的划分如栈、堆、代码区、数据区这些。但我们其实并不真正理解内存 — 我们之前一直说的内存是物理上的内存吗&#xff1f; 前言 我们…

18- TensorFlow实现CIFAR10分类 (tensorflow系列) (项目十八)

项目要点 导入cifar图片集: (train_image, train_label), (test_image, test_label) cifar.load_data() # cifar keras.datasets.cifar10图片归一化处理: train_image train_image / 255定义模型: model keras.Sequential() 输入层: model.add(layers.Conv2D(64, (3, 3…

HTML基础语法

一 前端简介构成语言说明结构HTML页面元素和内容表现CSS网页元素的外观和位置等页面样式&#xff08;美化&#xff09;行为JavaScript网页模型的定义和页面交互二 HTML1.简介HTML&#xff08;Hyper Text Markup Language&#xff09;&#xff1a;超文本标记语言。网页结构整体&…

Kubernetes05: Pod

Kubernetes05: Pod 1、概述 1&#xff09;最小部署的单元 2&#xff09;K8s不会处理容器&#xff0c;而是Pod&#xff0c;Pod里边包含多个容器&#xff08;一组容器的集合&#xff09; 3&#xff09;一个Pod中的容器共享一个网络命名空间 4) Pod是短暂存在的东西&#xff08;重…

使用shiroshiro整合其他组件

什么是shiro&#xff1f; 一款apache公司出品的Java安全框架&#xff0c;主要用于设计针对应用程序的保护&#xff0c;使用shiro可以完成认证、授权、加密、会话管理等。保证系统稳定性、数据安全性 优势&#xff1a;易于使用、易于理解、兼容性强&#xff08;可以与其他框架集…

SE-SSD论文阅读

摘要 本文提出了一种基于自集成单级目标检测器(SE-SSD)的室外点云三维目标检测方法。我们的重点是利用我们的公式约束开发软目标和硬目标来联合优化模型&#xff0c;而不引入额外的计算在推理中。具体来说&#xff0c;SE-SSD包含一对teacher 和student ssd&#xff0c;在其中我…

Mac 安装 Java 反编译工具 JD-GUI

Mac 安装 Java 反编译工具 JD-GUI JD-GUI 是一款 Java 反编译工具&#xff0c;可以方便的将编译好的 .class 文件反编译为 .java 源码文件&#xff0c;用于开发调试、源码学习等。 官网地址&#xff1a;http://java-decompiler.github.io Git 地址&#xff1a;https://github…

直播美颜sdk是什么?它是怎么让用户”变美“的?

如今&#xff0c;直播美颜sdk、手机摄影、短视频以及社交软件的盛行&#xff0c;让“拍照”成为人们日常生活中不可或缺的一部分。随着直播美颜sdk技术的不断升级&#xff0c;手机摄影的质量也越来越高。有统计数据显示&#xff0c;2018年中国智能手机用户已经达到了7亿人&…

美国最新调查显示 50% 企业已在用 ChatGPT,其中 48% 已让其代替员工,你怎么看?

美国企业开始使用ChatGPT&#xff0c;我认为这不是什么新闻。 如果美国的企业现在还不使用ChatGPT&#xff0c;那才是个大新闻。 据新闻源显示&#xff0c;已经使用chatGPT的企业中&#xff0c;48%已经让其代替员工工作。 ChatGPT的具体职责包括&#xff1a;客服、代码编写、招…

HTB-remote

HTB-remote信息搜集开机提权信息搜集 nmap 较为感兴趣的端口&#xff1a; 2180nfs 首先尝试21端口&#xff0c;可以看到并没有文件在ftp服务器里面&#xff0c;而且也无法上传文件。 80端口。 在contact里面找到了能够登录的网站。 经过简单的测试发现可能不存在sql注…

逆向、安全、工具集

0、安卓逆向环境 r0env 原味镜像介绍文章&#xff1a;https://mp.weixin.qq.com/s/gBdcaAx8EInRXPUGeJ5ljQ 原味镜像介绍视频&#xff1a;https://www.bilibili.com/video/BV1qQ4y1R7wW/ 百度盘&#xff1a;链接:https://pan.baidu.com/s/1anvG0Ol_qICt8u7q5_eQJw 提取码:3x2a …

【Spring源码】Spring AOP的核心概念

废话版什么是AOP关于什么是AOP&#xff0c;这里还是要简单介绍下AOP&#xff0c;Aspect Oriented Programming&#xff0c;面向切面编程&#xff0c;通过预编译和运行期间提供动态代理的方式实现程序功能的统一维护&#xff0c;使用AOP可以降低各个部分的耦合度&#xff0c;提高…

openfeign负载均衡策略 | Spring Cloud 5

一、Spring Cloud LoadBalancer介绍 Spring Cloud LoadBalancer是Spring Cloud官网提供的一个客户端负载均衡器&#xff0c;功能类似于Ribbon。在Spring Cloud Nacos 2021移除了中Ribbon组件&#xff0c;Spring Cloud在Spring Cloud Commons项目中&#xff0c;添加了Spring Cl…

华为OD机试题,用 Java 解【N 进制减法】问题

最近更新的博客 华为OD机试题,用 Java 解【停车场车辆统计】问题华为OD机试题,用 Java 解【字符串变换最小字符串】问题华为OD机试题,用 Java 解【计算最大乘积】问题华为OD机试题,用 Java 解【DNA 序列】问题华为OD机试 - 组成最大数(Java) | 机试题算法思路 【2023】使…