pyqt5 用QWigdet制作,点击”图像载入“按钮后,输入图像,然后点击“MSE”按钮,开始对输入的图像进行图像质量评价,并在界面中输出结果,最后点击“结果导出”按钮,将数据下载并保存为excel格式,写出完整代码

时间: 2024-03-30 21:36:58 浏览: 17
好的,这里是一个简单的 PyQt5 应用程序,可以实现您所需的功能。需要注意的是,这里的 MSE 算法仅适用于比较两个相同大小的图像,因此在实际使用中需要根据需要进行修改。 ```python import sys from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QLineEdit, QFileDialog, QMessageBox from PyQt5.QtGui import QPixmap from PIL import Image import numpy as np import pandas as pd class ImageQualityEvaluation(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): # 设置窗口大小和标题 self.setGeometry(300, 300, 500, 400) self.setWindowTitle('图像质量评价') # 创建标签和按钮 self.label = QLabel(self) self.label.setGeometry(20, 20, 200, 200) self.btn_load = QPushButton('图像载入', self) self.btn_load.setGeometry(20, 240, 100, 30) self.btn_mse = QPushButton('MSE', self) self.btn_mse.setGeometry(140, 240, 100, 30) self.btn_export = QPushButton('结果导出', self) self.btn_export.setGeometry(260, 240, 100, 30) # 创建文本框 self.lineEdit = QLineEdit(self) self.lineEdit.setGeometry(20, 280, 340, 30) # 绑定按钮事件 self.btn_load.clicked.connect(self.loadImage) self.btn_mse.clicked.connect(self.calculateMSE) self.btn_export.clicked.connect(self.exportResult) # 显示窗口 self.show() def loadImage(self): # 弹出文件选择框 fname = QFileDialog.getOpenFileName(self, '选择图像', '', 'Image files(*.jpg *.png *.jpeg)')[0] if fname: # 加载图像并显示在标签上 pixmap = QPixmap(fname) self.label.setPixmap(pixmap) self.label.setScaledContents(True) # 将图像路径显示在文本框中 self.lineEdit.setText(fname) def calculateMSE(self): # 从文本框中获取图像路径 fname = self.lineEdit.text() if fname: # 计算 MSE img1 = np.array(Image.open(fname).convert('L')) img2 = np.zeros_like(img1) mse = np.mean((img1 - img2) ** 2) # 在消息框中显示结果 QMessageBox.information(self, 'MSE', 'MSE = {:.2f}'.format(mse)) def exportResult(self): # 弹出文件保存框 fname = QFileDialog.getSaveFileName(self, '保存结果', '', 'Excel files(*.xlsx)')[0] if fname: # 将结果保存为 Excel 文件 data = {'MSE': [mse]} df = pd.DataFrame(data) df.to_excel(fname, index=False) if __name__ == '__main__': app = QApplication(sys.argv) ex = ImageQualityEvaluation() sys.exit(app.exec_()) ``` 希望这可以帮助您实现您的应用程序。

相关推荐

最新推荐

recommend-type

pyqt5使用按钮进行界面的跳转方法

今天小编就为大家分享一篇pyqt5使用按钮进行界面的跳转方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
recommend-type

PyQt5基本控件使用之消息弹出、用户输入、文件对话框的使用方法

本文主要介绍PyQt界面实现中常用的消息弹出对话框、提供用户输入的输入框、打开文件获取文件/目录路径的文件对话框。 本文主要针对这三种控件的主要场景进行介绍。感兴趣的朋友跟随小编一起看看吧
recommend-type

python GUI库图形界面开发之PyQt5单选按钮控件QRadioButton详细使用方法与实例

主要介绍了python GUI库图形界面开发之PyQt5单选按钮控件QRadioButton详细使用方法与实例,需要的朋友可以参考下
recommend-type

python PyQt5/Pyside2 按钮右击菜单实例代码

本文通过实例代码给大家介绍了python PyQt5/Pyside2 按钮右击菜单,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
recommend-type

PyQt5 对图片进行缩放的实例

今天小编就为大家分享一篇PyQt5 对图片进行缩放的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB柱状图在信号处理中的应用:可视化信号特征和频谱分析

![matlab画柱状图](https://img-blog.csdnimg.cn/3f32348f1c9c4481a6f5931993732f97.png) # 1. MATLAB柱状图概述** MATLAB柱状图是一种图形化工具,用于可视化数据中不同类别或组的分布情况。它通过绘制垂直条形来表示每个类别或组中的数据值。柱状图在信号处理中广泛用于可视化信号特征和进行频谱分析。 柱状图的优点在于其简单易懂,能够直观地展示数据分布。在信号处理中,柱状图可以帮助工程师识别信号中的模式、趋势和异常情况,从而为信号分析和处理提供有价值的见解。 # 2. 柱状图在信号处理中的应用 柱状图在信号处理
recommend-type

前端深拷贝 和浅拷贝有哪些方式,你在哪里使用过

前端深拷贝和浅拷贝的方式有很多,下面列举几种常用的方式: 深拷贝: 1. JSON.parse(JSON.stringify(obj)),该方法可以将对象序列化为字符串,再将字符串反序列化为新的对象,从而实现深拷贝。但是该方法有一些限制,例如无法拷贝函数、RegExp等类型的数据。 2. 递归拷贝,即遍历对象的每个属性并进行拷贝,如果属性值是对象,则递归进行拷贝。 3. 使用第三方库如lodash、jQuery等提供的深拷贝方法。 浅拷贝: 1. Object.assign(target, obj1, obj2, ...),该方法可以将源对象的属性浅拷贝到目标对象中,如果有相同的属性,则会
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。