pyqt5 用QWigdet制作,点击”图像载入“按钮后,输入图像,然后点击“MSE”按钮,开始对输入的图像进行图像质量评价,并在界面中输出结果,最后点击“结果导出”按钮,将数据下载并保存为excel格式,写出完整代码
时间: 2024-03-30 07:36:58 浏览: 69
图像质量评价最新源代码
5星 · 资源好评率100%
好的,这里是一个简单的 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_())
```
希望这可以帮助您实现您的应用程序。
阅读全文