python PSNR代码
图像恢复常用psnr做为评价指标。psnr值越高则表示两幅图像越相似。
由于图像处理时常有两种类型的格式,一种是tensor类型,一种是numpy类型。所以这里准备了两个代码。
import torch
import numpy as np
import cv2
from torchvision import transformsdef torchPSNR(tar_img, prd_img):imdff = torch.clamp(prd_img,0,1) - torch.clamp(tar_img,0,1)rmse = (imdff**2).mean().sqrt()ps = 20*torch.log10(1/rmse)return psdef numpyPSNR(tar_img, prd_img):##这里通常会去除边框imdff = np.float32(prd_img) - np.float32(tar_img)rmse = np.sqrt(np.mean(imdff**2))ps = 20*np.log10(255/rmse)return psimg1=cv2.imread('./2.png')
# img1=cv2.cvtColor(img1, cv2.COLOR_BGR2YCR_CB)###改变颜色
# b1,g1,r1=cv2.split(img1) ##通道分离
img2=cv2.imread('./3.png')
# img2=cv2.cvtColor(img2, cv2.COLOR_BGR2YCR_CB)
# b2,g2,r2=cv2.split(img2)
print(numpyPSNR(img1,img2))img1=transforms.ToTensor()(img1)
img2=transforms.ToTensor()(img2)print(torchPSNR(img1,img2))
# print(numpyPSNR(g1,g2))
# print(numpyPSNR(b1,b2))
# print(numpyPSNR(r1,r2))
补充:
当图片的数据类型是np.uint8时。
from skimage.measure import compare_ssim,compare_psnr
psnr = compare_psnr(img1, img2, 255)
python PSNR代码相关推荐
- 【机器视觉案例】(5) AI视觉,手势调节物体尺寸,附python完整代码
各位同学好,今天和大家分享一下如何使用opencv+mediapipe完成远程手势调节图片尺寸的案例.先放张图看效果.当拇指和食指竖起时,根据食指间的连线的长度自由缩放图片尺寸.图片的中点始终位于指尖 ...
- 【机器视觉案例】(5) AI视觉,远程手势控制虚拟计算器,附python完整代码
各位同学好,今天和大家分享一下如何使用MediaPipe+Opencv完成虚拟计算器,先放张图看效果.FPS值为29,食指和中指距离小于规定阈值则认为点击按键,为避免重复数字出现,规定每20帧可点击一 ...
- 【MediaPipe】(4) AI视觉,远程手势调节电脑音量,附python完整代码
各位同学好,今天和大家分享一下如何使用MediaPipe完成手势调节电脑音量,先放张图看效果. 注意!! 本节需要用到手部关键点的实时跟踪,我已经在之前的文章中详细写过了,本节会直接使用,有疑问的同学 ...
- 【深度学习】(2) 数据加载,前向传播2,附python完整代码
生成数据集: tf.data.Dataset.from_tensor_slices(tensor变量) 创建一个数据集,其元素是给定张量的切片 生成迭代器: next(iter()) next() 返 ...
- 【机器学习入门】(13) 实战:心脏病预测,补充: ROC曲线、精确率--召回率曲线,附python完整代码和数据集
各位同学好,经过前几章python机器学习的探索,想必大家对各种预测方法也有了一定的认识.今天我们来进行一次实战,心脏病病例预测,本文对一些基础方法就不进行详细解释,有疑问的同学可以看我前几篇机器学习 ...
- 【机器学习入门】(8) 线性回归算法:正则化、岭回归、实例应用(房价预测)附python完整代码和数据集
各位同学好,今天我和大家分享一下python机器学习中线性回归算法的实例应用,并介绍正则化.岭回归方法.在上一篇文章中我介绍了线性回归算法的原理及推导过程:[机器学习](7) 线性回归算法:原理.公式 ...
- 【机器学习入门】(5) 决策树算法实战:sklearn实现决策树,实例应用(沉船幸存者预测)附python完整代码及数据集
各位同学好,今天和大家分享一下python机器学习中的决策树算法,在上一节中我介绍了决策树算法的基本原理,这一节,我将通过实例应用带大家进一步认识这个算法.文末有完整代码和数据集,需要的自取.那我们开 ...
- 【机器学习入门】(3) 朴素贝叶斯算法:多项式、高斯、伯努利,实例应用(心脏病预测)附python完整代码及数据集
各位同学好,今天我和大家分享一下朴素贝叶斯算法中的三大模型.在上一篇文章中,我介绍了朴素贝叶斯算法的原理,并利用多项式模型进行了文本分类预测. 朴素贝叶斯算法 -- 原理,多项式模型文档分类预测,附p ...
- 同一个内容,对比Java、C、PHP、Python的代码量,结局意外了
为什么都说Python容易上手!是真的吗? 都说Python通俗易懂,容易上手,甚至不少网友表示「完成同一个任务,C 语言要写 1000 行代码,Java 只需要写 100 行,而 Python 可能 ...
最新文章
- python center函数_python pandas移动窗口函数rolling的用法
- dedecms arclist中截取字符串的方法
- java io读取doc内容_Java word 内容读取-Go语言中文社区
- 【收藏】基于QGIS的Google Earth Engine插件已发布
- 牛客网——今年的第几天
- 微信浏览器打开网页被拦截了?Mindjump快速解决微信屏蔽网址用户打不开的难题...
- IOS https抓包及10.3.3版本证书不生效问题解决
- react(83)--filter
- MySQL 常用需求写法 记录一下
- C++(8)--数组及常用算法
- Cannot re-initialize CUDA in forked subprocess. To use CUDA with multiprocessing, you
- 通过自定义消息调用主窗体的菜单项
- Python3中异常处理和try/except,try/finally的用法
- 虚拟机下挂载CentOS 镜像并配置yum本地镜像源
- 字节跳动 | 机器学习与推荐算法工程师培养计划
- 谷歌浏览器开发者工具network_关于Chrome谷歌浏览器开发者工具网络Network中返回无数据的问题...
- 土地购买(USACO 2008 March Gold)
- 计算机学报在线阅读,计算机研究与发展计算机学报软件学报电子学报西安交通大学学报.doc...
- caps scrlk numlk 闪烁
- 一文搞懂广播电视节目制作经营许可证办理流程
热门文章
- Hive分区——Partition(静态分区,动态分区)详解
- 【Linux学习】进程概念
- 【直播预告】从A76到 A78——在变化中学习ARM微架构
- wifi钓鱼 强势拿你的wifi密码
- SparkSQL之DataFrame 编程(创建DataFrame ,DataFrame数据运算操作 ,输出存储DataFrame)(11)
- echarts 画流程图
- 辅助服务类:AccessibilityService使用
- Android自定义view刷新方法
- AVL树(平衡二叉搜索树)
- 华为手机你知道几种截屏方式呢?其实有7种,看看你用过几个?