简单的按照评价指标公式,计算出待评价图像与标准图像之间的评价指标值,评价公式如下图:

M和N表示图像的尺寸,L表示图像的灰度取值范围,对于8bit的灰度图像而言取L=255

实验数据如下所示:

标准图像
待评价的三张图像:



实验代码:

import glob
import mathimport numpy as np
from skimage import ioroad1 = glob.glob(".\\data\\*.jpeg")  # 获取标准图像的文件路径
standard = io.imread(road1[0])  # 读取标准图像文件
standard = standard.astype(np.int32)  # 将 uint8类型的数据转换为int32类型便于后面运算
road2 = glob.glob(".\\data\\*.bmp")  # 获取待评价图像的文件路径
m = len(road2)  # 获取待评价图像的数量
gray = 255  # 定义灰度范围值,方便后续计算
strname = 'ans.txt'  # 定义一个文档名称,用于保存结果# 定义函数calMSE,计算标准图像std与目标图像aim之间的均方误差(MSE)评价指标
def calMSE(std, aim):# 利用循环计算两幅影像间相同位置像素的灰度值的差的平方和num = 0for i in range(std.shape[0]):for j in range(std.shape[1]):num += math.pow(std[i, j] - aim[i, j], 2)mse = num / (std.shape[0] * std.shape[1])return mse# 定义函数calPSNR,计算标准图像std与目标图像aim之间的峰值信噪比(PSNR)评价指标
def calPSNR(std, aim):num = 0for i in range(std.shape[0]):for j in range(std.shape[1]):num += (std[i, j] - aim[i, j]) * (std[i, j] - aim[i, j])mse = num / (std.shape[0] * std.shape[1])psnr = 10 * math.log(gray * gray / mse, 10)return psnrf = open(strname, "w")  # 打开文件
for i in range(m):img = io.imread(road2[i])  # 读取一张待评价的图片img = img.astype(np.int32)mse = calMSE(standard, img)  # 计算MSE指标psnr = calPSNR(standard, img)  # 计算PSNR指标name = '图像名称: ' + road2[i] + ',  MSE指标: ' + str(mse) + ',  PSNR指标: ' + str(psnr)f.write(str(name))  # 将结果字符串写入文件f.write('\n')  # 换行使文件中结果更加清楚
f.close()  # 关闭文件

实验的评价结果将自动保存为文本文档:

数字图像处理——图像质量评价(Python)相关推荐

  1. 数字图像处理——实验一 Python中数字图像处理的基本操作

    数字图像处理--实验一 Python中数字图像处理的基本操作 一.实验目的 二.实验主要仪器设备 三.实验原理 3.1 数字图像的表示和类别 3.2 opencv-python图像文件格式 四.实验内 ...

  2. 数字图像处理 python_5使用Python处理数字的高级操作

    数字图像处理 python Numbers are everywhere in our daily life - there are phone numbers, dates of birth, ag ...

  3. 基于Opencv的数字图像处理技巧(python)

    图像处理(image processing),用计算机对图像进行分析,以达到所需结果的技术.又称影像处理.图像处理一般指数字图像处理.数字图像是指用工业相机.摄像机.扫描仪等设备经过拍摄得到的一个大的 ...

  4. 数字图像处理 使用opencv+python识别七段数码显示器的数字

    一.什么是七段数码显示器 七段LCD数码显示器有很多叫法:段码液晶屏.段式液晶屏.黑白笔段屏.段码LCD液晶屏.段式显示器.TN液晶屏.段码液晶显示器.段码屏幕.笔段式液晶屏.段码液晶显示屏.段式LC ...

  5. 数字图像处理之用Python+GDAL实现BSQ格式转换为BIP格式,BIL格式转换为BSQ,BIP格式

    1.环境:PyCharm2022.2.3+Python3.9.1+GDAL(GDAL-3.4.3-cp39-cp39-win_amd64) 2.概念: (1)BSQ (band sequential) ...

  6. 数字图像处理 染色体计数 Python实现

    目录 一.实验内容 二.实验步骤 三.代码 四.结果 一.实验内容 对于下面这幅图像,编程实现染色体计数,并附简要处理流程说明. 二.实验步骤 1.中值滤波 2.图像二值化 3.膨胀图像 4.腐蚀图像 ...

  7. (附源码)python数字图像处理课程平台 毕业设计 242339

    Python数字图像处理课程平台的开发 摘 要 数字图像处理是一门新兴技术,随着计算机硬件的发展,数字图像的实时处理已经成为可能,由于数字图像处理的各种算法的出现,使得其处理速度越来越快,能更好的为人 ...

  8. (附源码)Python数字图像处理课程平台 毕业设计242339

    Python数字图像处理课程平台的开发 摘 要 数字图像处理是一门新兴技术,随着计算机硬件的发展,数字图像的实时处理已经成为可能,由于数字图像处理的各种算法的出现,使得其处理速度越来越快,能更好的为人 ...

  9. Python 计算机视觉(一) —— 数字图像处理基础

    目录 1. 数字图像处理 2. 图像三要素 (1) 图像大小(size) 像素点 分辨率 图像大小 (2) 图像深度(depth) (3) 图像通道数(channels) 单通道 三通道 四通道 二通 ...

最新文章

  1. 照抄不翻车:抗住千万流量的大型分布式系统架构设计
  2. centos7开启,关闭防火墙
  3. Android studio java文件显示变为红色J
  4. 假设一动态集合S用一个长度为m的直接寻址表T来表示。请给出一个查找S中最大元素的过程。(算法导论第十一章11.1-1)
  5. 决策树有框架吗_决策框架
  6. CentOS7安装 MySQL主从集群
  7. SQL Server 2005系列教学(9) SQL 存储过程
  8. phpcms 指定id范围 调用_Dubbogo 源码笔记(二)客户端调用过程
  9. 虚拟机 VMware 16安装教程
  10. 强化学习Q-Learning实现机器人走迷宫
  11. java 上传附件_java 上传附件实现方法
  12. RuntimeWarning: invalid value encountered in arccos
  13. Android选择DNK出现“NDK does not contain any platforms”
  14. 【手把手教你】搭建神经网络(3D点云分类)
  15. 2021年煤矿瓦斯检查证考试及煤矿瓦斯检查模拟考试题
  16. 推拿师考证需要什么条件
  17. java 判断手机访问_java后台如何判断是移动端还是pc端的访问请求
  18. 生成树个数(基尔霍夫矩阵)
  19. 黑客攻击第一步你知道是啥吗?
  20. 常见 markdown 数据符号操作

热门文章

  1. TCRT5000红外反射传感器(循迹模块)
  2. 工程监测多通道振弦模拟信号采集仪VTN的四种工作模式
  3. 联想win8改win7
  4. 由ArcCatalog远程连接ArcSde
  5. 我国古代的度量衡解析
  6. 中文文本特征提取—流程
  7. 开发笔记 | Springboot整合多平台支付(微信/支付宝)
  8. 如何下载天津城区卫星地图高清版大图
  9. 记一次,oracle pdb数据库配置
  10. 如何在巨头笼罩下的社区团购中引领新零售突围