# -*- coding: utf-8 -*-
import os
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import *
import tensorflow as tf
from PIL import Image
import numpy as np
import sys
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 600)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(220, 20, 291, 61))
self.label.setScaledContents(False)
self.label.setObjectName("label")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(160, 430, 93, 28))
self.pushButton.setObjectName("pushButton")
self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_2.setGeometry(QtCore.QRect(440, 430, 93, 28))
self.pushButton_2.setObjectName("pushButton_2")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(150, 90, 381, 321))
self.label_2.setText("")
self.label_2.setObjectName("label_2")
self.label_3 = QtWidgets.QLabel(self.centralwidget)
self.label_3.setGeometry(QtCore.QRect(550, 130, 141, 51))
self.label_3.setText("")
self.label_3.setObjectName("label_3")
self.label_4 = QtWidgets.QLabel(self.centralwidget)
self.label_4.setGeometry(QtCore.QRect(550, 90, 141, 31))
self.label_4.setObjectName("label_4")
self.textBrowser = QtWidgets.QTextBrowser(self.centralwidget)
self.textBrowser.setGeometry(QtCore.QRect(150, 90, 381, 321))
self.textBrowser.setObjectName("textBrowser")
self.textBrowser_2 = QtWidgets.QTextBrowser(self.centralwidget)
self.textBrowser_2.setGeometry(QtCore.QRect(550, 130, 141, 51))
self.textBrowser_2.setObjectName("textBrowser_2")
self.textBrowser_3 = QtWidgets.QTextBrowser(self.centralwidget)
self.textBrowser_3.setGeometry(QtCore.QRect(220, 20, 291, 61))
self.textBrowser_3.setObjectName("textBrowser_3")
self.textBrowser_4 = QtWidgets.QTextBrowser(self.centralwidget)
self.textBrowser_4.setGeometry(QtCore.QRect(550, 90, 141, 31))
self.textBrowser_4.setObjectName("textBrowser_4")
self.textBrowser_2.raise_()
self.label.raise_()
self.textBrowser.raise_()
self.textBrowser_3.raise_()
self.pushButton.raise_()
self.pushButton_2.raise_()
self.label_2.raise_()
self.label_4.raise_()
self.textBrowser_4.raise_()
self.label_3.raise_()
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 26))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.toolBar = QtWidgets.QToolBar(MainWindow)
self.toolBar.setObjectName("toolBar")
MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
# 模型相关变量初始化
self.model = tf.keras.models.load_model(r'C:\Users\zjl15\PycharmProjects\pythonProject1\roch_classification_cnn.h5')
self.path = ''
self.rock_types = ['砾岩','安山岩','花岗岩','石灰岩','石英岩']
# 将“导入图片”按钮与openImage函数绑定
self.pushButton.clicked.connect(self.openImage)
# 将“岩石分类”按钮与classify函数绑定
self.pushButton_2.clicked.connect(self.classify)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.label.setText(_translate("MainWindow", "岩石图像分类"))
self.pushButton.setText(_translate("MainWindow", "导入图像"))
self.pushButton_2.setText(_translate("MainWindow", "岩石分类"))
self.label_4.setText(_translate("MainWindow", "分类结果"))
self.textBrowser_3.setHtml(_translate("MainWindow",
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'SimSun\'; font-size:9pt; font-weight:400; font-style:normal;\">\n"
"<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:24pt;\">岩石图像识别</span></p></body></html>"))
self.textBrowser_4.setHtml(_translate("MainWindow",
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'SimSun\'; font-size:9pt; font-weight:400; font-style:normal;\">\n"
"<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:11pt;\">分类结果</span></p></body></html>"))
self.toolBar.setWindowTitle(_translate("MainWindow", "toolBar"))
# 导入图片函数
def resource_path(relative):
if hasattr(sys, "_MEIPASS"):
absolute_path = os.path.join(sys._MEIPASS, relative)
else:
absolute_path = os.path.join(relative)
return absolute_path
# 在原来引用该文件的地方加上这个函数 (resource_path("文件名"))
def openImage(self):
imgPath, imgType = QFileDialog.getOpenFileName(None, "导入图片", "", "*.jpg;;*.png;;All Files(*)")
jpg = QtGui.QPixmap(imgPath).scaled(self.label_2.width(), self.label_2.height())
self.label_2.setPixmap(jpg)
self.path=imgPath
self.label_3.setText('')
def classify(self):
img = Image.open(self.path) # 读取图像
img_rgb = img.split()
x = np.zeros((1, 224, 224, 3))
x[0,:, :, 0] = np.array(img_rgb[0]) / 255
x[0,:, :, 1] = np.array(img_rgb[1]) / 255
x[0,:, :, 2] = np.array(img_rgb[2]) / 255
y = self.model.predict(x)
result = self.rock_types[np.argmax(y)]
self.label_3.setText(result)
if __name__=='__main__':
QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)
app=QtWidgets.QApplication(sys.argv)
MainWindow=QtWidgets.QMainWindow()
ui_test=Ui_MainWindow()
ui_test.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
1 实训基本信息 1.1 实训项目名称 1.分类类型数据挖掘任务 2.回归类型数据挖掘任务 3.综合类型数据挖掘任务 1.2 实训环境 地点:双创中心楼605 操作系统:Windows7 编程语言:Python 所需软件:PyCharm、Jupyter Notebook
资源推荐
资源详情
资源评论



























收起资源包目录





































































































共 1776 条
- 1
- 2
- 3
- 4
- 5
- 6
- 18
资源评论


张謹礧

- 粉丝: 3w+
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 基于COMSOL多物理场的隧洞开挖流固耦合模型:应力影响下的土体变形与渗透特性分析 · 多物理场建模 必备版
- 光储联合离网微电网:光伏MPPT扰动观察法稳定直流母线电压仿真分析
- 企业级STM32 Boot Loader:优化验证后的实用代码包与QT上位机源码详解 - Flash编程
- 01Studio CanMV K230 开发板,单路摄像头显示,默认外接HDMI显示器,也可以使用3.5寸触摸屏显示
- 两轮四轮差速机器人STM32底层源码与ROS端工程源码:实现高精度定位与导航的融合算法 · EKF
- 高效工业相机与机器视觉软件:AI驱动的轴承保持架缺陷快速检测系统,实时采集与通讯,漏检率低于1%
- 5G数字电源方案:基于无桥PFC三相交错零电压模式的6.5kW高效电源设计及其实现
- 针对目标检测做的数据增强
- 光子学与微电子学中Lumerical FDTD Mode建模及特殊图案GDS版图设计的综合研究 · 微电子学
- COMSOL模拟沸腾水中气泡运动的两相流流体传热与蒸汽冷凝:模型及参数设置
- 基于MATLABSimulink的永磁同步电机无差拍电流预测控制仿真研究与实现
- 01Studio CanMV K230 开发板,双路摄像头显示程序 ,CSI1与CSI2接sener摄像头,外接HDMI显示器
- 电力系统领域:基于Matlab的配电网故障重构二阶锥优化方法及其应用
- 云广直流输电的PSCAD模型 - 高压直流输电 指南
- 轻量级目标检测 deeposrt目标追踪
- 单相七电平级联逆变器开环仿真的MATLAB Simulink实现及其应用
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
