基于PyQt Python的深度学习图像处理界面开发(二)

        Python标准库更多的适合处理后台任务,唯一的图形库tkinter使用起来很不方便,所以后来出现了针对Python图形界面开发的扩展库,例如PyQt。

        在介绍PyQt之前,必须先简单介绍一下Qt。Qt是一个C++可视化开发平台,是一个跨平台的C++图形用户界面应用程序框架(C++ GUI),能够为应用程序开发者提供建立图形用户界面所需的功能。Qt是完全面向对象的、易扩展,可应用于组件编程,并可以用于嵌入式开发。它是目前流行的Linux桌面环境KDE 的基础,是Linux和嵌入式操作系统下的主流图形界面开发环境,其最大优势在于只需编写一次代码,就能编译部署在任何操作系统和硬件上。因为擅长图形界面开发,如今更扩展到移动及嵌入式设备开发。对于商业软件公司来说极具价值,可以广泛应用于物联网特别是智能汽车、智能制造业等的研发。

        PyQt是一个创建Python GUI应用程序的工具包,是Qt和Python结合的一个产物,可以说是为了将Qt的功能用于Python开发的一个Qt的Python包装器。它是Python编程语言和Qt库的成功融合。

        PyQt上手难度还是比较高,不想掉发的,可以看我专栏其它的界面开发教程:https://blog.csdn.net/m0_59023219/category_12553272.html

  下面界面的开发,需要有一点的基础,建议先看看我写的另外一篇文章:基于PyQt Python的深度学习图像处理界面开发(一)-CSDN博客

一. 需求

       包装深度学习的界面应该具有以下几个几个基本功能:

       1.通过按钮选择图片或者模型

       2.显示图片

       3.显示运行结果

二.部分代码展示(完整代码看下载链接)

        以一个简单的深度学习分类代码作为演示,大家可以基于这个改,该有的功能都有

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'new.ui'
#
# Created by: PyQt5 UI code generator 5.15.2
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.
import sys
import cv2
import time
from os import getcwd
from PyQt5.QtCore import Qt
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QFileDialog
import numpy as np
from model import HappyModel
from keras.preprocessing.image import img_to_array


class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(490, 616)
        self.label = QtWidgets.QLabel(Form)
        self.label.setGeometry(QtCore.QRect(150, 20, 281, 20))
        self.label.setObjectName("label")
        self.pushButton = QtWidgets.QPushButton(Form)
        self.pushButton.setGeometry(QtCore.QRect(50, 60, 93, 28))
        self.pushButton.setObjectName("pushButton")
        self.label_2 = QtWidgets.QLabel(Form)
        self.label_2.setGeometry(QtCore.QRect(50, 110, 410, 410))
        self.label_2.setObjectName("label_2")
        self.label_result = QtWidgets.QLabel(Form)
        self.label_result.setGeometry(QtCore.QRect(270, 560, 201, 21))
        self.label_result.setObjectName("label_result")
        self.label_5 = QtWidgets.QLabel(Form)
        self.label_5.setGeometry(QtCore.QRect(190, 560, 81, 21))
        self.label_5.setObjectName("label_5")

        model_path = "logs/HappyModel_model_logep042-accuracy0.966-val_accuracy0.999.h5"
        self.IMG_W = 96
        self.IMG_H = 96
        self.model = HappyModel((self.IMG_H, self.IMG_W, 3))
        self.model.load_weights(model_path)

        self.EMOTIONS = ['Apple_Braeburn', 'Banana', 'Blueberry', 'Cherry', 'Chestnut', 'Cocos', 'Corn', 'Eggplant',
                         'Fig', 'Ginger_Root', 'Granadilla', 'Lemon', 'Onion_Red', 'Orange', 'Pear']


        self.retranslateUi(Form)
        self.centralwidget = QtWidgets.QWidget(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "水果识别分类系统"))
        self.label.setText(_translate("Form", "<html><head/><body><p><span style=\" font-size:12pt; font-weight:600;\">水果识别分类系统</span></p></body></html>"))
        self.pushButton.setText(_translate("Form", "选择图片"))
        self.label_2.setText(_translate("Form", "                  显示图片"))
        self.label_result.setText(_translate("Form", "None"))
        self.label_5.setText(_translate("Form", "识别结果:"))



    def cv_imread(self,filePath):
        # 读取图片
        cv_img=cv2.imdecode(np.fromfile(filePath,dtype=np.uint8),-1)
        ## imdecode读取的是rgb,如果后续需要opencv处理的话,需要转换成bgr,转换后图片颜色会变化
        ## cv_img=cv2.cvtColor(cv_img,cv2.COLOR_RGB2BGR)
        return cv_img

    def choose_pic(self):
		pass

        QtWidgets.QApplication.processEvents()




if  __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)

    baseWidget = QtWidgets.QWidget()  # 创建窗口的基类QWidget的实例

    ui = Ui_Form()  # 创建UI窗口的实例
    ui.setupUi(baseWidget)  # 以baseWidget作为传递参数

    baseWidget.show()
    ##ui.LabHello.setText("Hello,被程序修改")    #可以修改窗体上标签的文字

    sys.exit(app.exec_())

三. 运行结果显示

代码的下载路径(新窗口打开链接)基于PyQt Python的深度学习图像处理界面开发

有问题可以私信或者留言,有问必答

  • 13
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值