数字图像处理——图像质量评价(Python)
简单的按照评价指标公式,计算出待评价图像与标准图像之间的评价指标值,评价公式如下图:
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)相关推荐
- 数字图像处理——实验一 Python中数字图像处理的基本操作
数字图像处理--实验一 Python中数字图像处理的基本操作 一.实验目的 二.实验主要仪器设备 三.实验原理 3.1 数字图像的表示和类别 3.2 opencv-python图像文件格式 四.实验内 ...
- 数字图像处理 python_5使用Python处理数字的高级操作
数字图像处理 python Numbers are everywhere in our daily life - there are phone numbers, dates of birth, ag ...
- 基于Opencv的数字图像处理技巧(python)
图像处理(image processing),用计算机对图像进行分析,以达到所需结果的技术.又称影像处理.图像处理一般指数字图像处理.数字图像是指用工业相机.摄像机.扫描仪等设备经过拍摄得到的一个大的 ...
- 数字图像处理 使用opencv+python识别七段数码显示器的数字
一.什么是七段数码显示器 七段LCD数码显示器有很多叫法:段码液晶屏.段式液晶屏.黑白笔段屏.段码LCD液晶屏.段式显示器.TN液晶屏.段码液晶显示器.段码屏幕.笔段式液晶屏.段码液晶显示屏.段式LC ...
- 数字图像处理之用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) ...
- 数字图像处理 染色体计数 Python实现
目录 一.实验内容 二.实验步骤 三.代码 四.结果 一.实验内容 对于下面这幅图像,编程实现染色体计数,并附简要处理流程说明. 二.实验步骤 1.中值滤波 2.图像二值化 3.膨胀图像 4.腐蚀图像 ...
- (附源码)python数字图像处理课程平台 毕业设计 242339
Python数字图像处理课程平台的开发 摘 要 数字图像处理是一门新兴技术,随着计算机硬件的发展,数字图像的实时处理已经成为可能,由于数字图像处理的各种算法的出现,使得其处理速度越来越快,能更好的为人 ...
- (附源码)Python数字图像处理课程平台 毕业设计242339
Python数字图像处理课程平台的开发 摘 要 数字图像处理是一门新兴技术,随着计算机硬件的发展,数字图像的实时处理已经成为可能,由于数字图像处理的各种算法的出现,使得其处理速度越来越快,能更好的为人 ...
- Python 计算机视觉(一) —— 数字图像处理基础
目录 1. 数字图像处理 2. 图像三要素 (1) 图像大小(size) 像素点 分辨率 图像大小 (2) 图像深度(depth) (3) 图像通道数(channels) 单通道 三通道 四通道 二通 ...
最新文章
- 照抄不翻车:抗住千万流量的大型分布式系统架构设计
- centos7开启,关闭防火墙
- Android studio java文件显示变为红色J
- 假设一动态集合S用一个长度为m的直接寻址表T来表示。请给出一个查找S中最大元素的过程。(算法导论第十一章11.1-1)
- 决策树有框架吗_决策框架
- CentOS7安装 MySQL主从集群
- SQL Server 2005系列教学(9) SQL 存储过程
- phpcms 指定id范围 调用_Dubbogo 源码笔记(二)客户端调用过程
- 虚拟机 VMware 16安装教程
- 强化学习Q-Learning实现机器人走迷宫
- java 上传附件_java 上传附件实现方法
- RuntimeWarning: invalid value encountered in arccos
- Android选择DNK出现“NDK does not contain any platforms”
- 【手把手教你】搭建神经网络(3D点云分类)
- 2021年煤矿瓦斯检查证考试及煤矿瓦斯检查模拟考试题
- 推拿师考证需要什么条件
- java 判断手机访问_java后台如何判断是移动端还是pc端的访问请求
- 生成树个数(基尔霍夫矩阵)
- 黑客攻击第一步你知道是啥吗?
- 常见 markdown 数据符号操作