PyQt5可视化界面进行深度学习框架调用

本文详细介绍使用PyQt5创建GUI界面的过程,包括界面文件转换、代码实现及文本输入输出功能。通过具体代码示例,展示如何从文本框读取数据并将其处理后输出,适用于初学者快速上手。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

根据网上教程,先把界面文件转换成.py文件,然后进行程序的编写。直接上代码:

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

# Form implementation generated from reading ui file 'test5.ui'
#
# Created by: PyQt5 UI code generator 5.11.3
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(667, 576)
        self.label = QtWidgets.QLabel(Form)
        self.label.setGeometry(QtCore.QRect(51, 44, 101, 31))
        self.label.setObjectName("label")
        self.textEdit = QtWidgets.QTextEdit(Form)
        self.textEdit.setGeometry(QtCore.QRect(40, 80, 551, 171))
        self.textEdit.setObjectName("textEdit")
        self.textBrowser = QtWidgets.QTextBrowser(Form)
        self.textBrowser.setGeometry(QtCore.QRect(40, 310, 551, 171))
        self.textBrowser.setObjectName("textBrowser")
        self.pushButton = QtWidgets.QPushButton(Form)
        self.pushButton.setGeometry(QtCore.QRect(260, 270, 93, 28))
        self.pushButton.setObjectName("pushButton")
        self.pushButton_2 = QtWidgets.QPushButton(Form)
        self.pushButton_2.setGeometry(QtCore.QRect(520, 520, 101, 28))
        self.pushButton_2.setObjectName("pushButton_2")

        self.retranslateUi(Form)
        self.pushButton.clicked.connect(Form.sure)
        self.pushButton_2.clicked.connect(Form.close1)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Form"))
        self.label.setText(_translate("Form", "程序介绍"))
        self.pushButton.setText(_translate("Form", "开始执行"))
        self.pushButton_2.setText(_translate("Form", "退出"))

#窗口运行显示   创建第一个窗口(Form)的类
class MyWindow(QtWidgets.QMainWindow, Ui_Form):
    def __init__(self):
        super(MyWindow, self).__init__()
        self.setupUi(self)

    def sure(self):            #获取文本框中的文件
        #读取文本框中的文件
        # print('sure')
        line = self.textEdit.toPlainText()        #读取文本框中的文件
        #字符串处理程序(深度学习调用)







        #文本框中的文本经过处理输出在文本框二
        self.textBrowser.setText(line)

    def close1(self,event):           #退出程序按钮
        # reply = QtWidgets.QMessageBox.question(self,'程序',"是否退出程序",QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No)
        # if reply == QtWidgets.QMessageBox.Yes:
        #     event.accept()
        # else:
        #     event.ignore()
        pass
if __name__ == '__main__':
    import sys
    app = QtWidgets.QApplication(sys.argv)
    mywindow = MyWindow() #实例化一个对象myshow
    mywindow.show()       #显示窗口
    sys.exit(app.exec_())      #结束应用程序,使应用程序在主循环中退出

 

代码所生成的界面如下:

本程序就是根据用户输入的内容,把内容传递给深度学习框架,然后根据模型的结果输出到界面程序中。深度学习模型省略,很简单的调用。重点就是一个从文本框里面读数据,然后把结果输出。

1.  line = self.textEdit.toPlainText() #读取文本框中的文件

2.  可以利用已写好的深度模型程序,在程序中进行调用,然后得到结果

3.  self.textBrowser.setText(line)  进行处理得到结果的输出

对于pyqt5在linux中输入框不能进行输入中文数据,可以根据网上的教程进行输入法的调用。

<think>我们正在处理用户关于Halcon调用深度学习模型的问题。根据引用内容,我们可以总结以下关键点:1.引用[1]提到:在Halcon中加载预训练模型使用命令`read_dl_model('model_file.h5','keras')`。这里模型文件是H5格式,指定后端为'keras'。2.引用[2]强调Halcon与深度学习框架结合的优势,但未提供具体调用方法。3.引用[3]展示了训练自定义模型的部分参数和函数`lib_dl_segmentation_train`,但用户问题是关于调用(即加载和使用)模型。因此,用户意图是了解如何在Halcon中调用(加载和使用)深度学习模型。回答步骤:1.加载模型:使用`read_dl_model`算子。2.准备数据:将输入图像转换为深度学习模型所需的格式(预处理)。3.应用模型:使用`apply_dl_model`算子进行推理。4.后处理:解析模型输出(如分类结果、目标检测框、分割掩码等)。注意:Halcon支持多种深度学习任务(分类、目标检测、语义分割等),具体后处理方式因任务而异。根据引用[1],加载模型时需指定模型文件路径和框架(如'keras')。但注意,Halcon也支持其他格式(如ONNX),因此需要根据模型文件类型调整。另外,Halcon提供了一些预训练模型,可以直接使用,也可以加载自定义训练的模型。示例代码(以图像分类为例):```python*加载模型read_dl_model('path/to/your_model.h5','keras',DLModelHandle)*准备输入数据(假设有一张图像Image)*首先,获取模型要求的图像尺寸等信息get_dl_model_param(DLModelHandle,'image_dimensions',ImageDimensions)*然后,将输入图像预处理(调整尺寸、归一化等)preprocess_dl_model(Image,ImagePreprocessed)*应用模型进行推理apply_dl_model(DLModelHandle,ImagePreprocessed,DLResult)*后处理:获取分类结果get_dl_model_result(DLResult,'classification','all',ClassResult)*ClassResult包含类别信息```注意事项:-不同任务(如目标检测)的后处理方式不同,需使用对应的参数。-预处理步骤可能包括归一化、调整通道顺序等,需根据模型要求进行。相关问题:1.Halcon支持哪些深度学习框架训练的模型?2.如何处理Halcon深度学习模型的输入和输出?3.如何针对目标检测任务调用Halcon深度学习模型?4.在Halcon中调用深度学习模型时常见的错误有哪些?5.Halcon深度学习模型部署的硬件要求是什么?</think>### Halcon 调用深度学习模型的方法 在 Halcon 中调用深度学习模型主要分为以下步骤,遵循"加载→预处理→推理→后处理"的工作流: #### 1. **加载模型** 使用 `read_dl_model` 算子加载预训练模型文件: ```python * 加载Keras格式的模型 read_dl_model ('model_file.h5', 'keras', DLModelHandle) ``` 支持格式包括: - Keras (.h5) - ONNX (.onnx) - Halcon 原生格式 (.hdl)[^1] #### 2. **数据预处理** 将输入图像转换为模型要求的格式: ```python * 调整尺寸和归一化 preprocess_dl_model (InputImage, ImagePreprocessed, DLPreprocessParam) ``` 关键预处理操作: - 尺寸调整(需匹配模型输入层) - 像素值归一化(通常归一化到 $[0,1]$ 或 $[-1,1]$) - 通道顺序转换(BGR↔RGB)[^3] #### 3. **模型推理** 应用模型进行预测: ```python * 执行推理 apply_dl_model (DLModelHandle, ImagePreprocessed, DLResult) ``` #### 4. **结果解析** 根据任务类型处理输出: ```python * 分类任务:获取类别概率 get_dl_model_result (DLResult, 'classification', 'all', ClassResult) * 目标检测:获取边界框 get_dl_model_result (DLResult, 'detection', 'all', BoundingBoxes) * 语义分割:获取掩码图 get_dl_model_result (DLResult, 'segmentation', 'all', SegmentationMask) ``` ### 关键注意事项 1. **硬件加速**: ```python * 启用GPU加速 set_system ('cuda', 'true') ``` 2. **批处理优化**: ```python * 设置批处理大小 set_dl_model_param (DLModelHandle, 'batch_size', 8) ``` 3. **模型兼容性**: - 输入尺寸需匹配 `get_dl_model_param (DLModelHandle, 'image_dimensions')` - 输出层名称需与 `get_dl_model_result` 参数一致[^3] ### 典型应用场景 - 工业缺陷检测:结合 Halcon 的传统图像处理与深度学习分类 - 医学图像分析:使用预训练分割模型处理CT/MRI图像 - 实时目标跟踪:在视频流中连续调用检测模型[^2] --- ### 相关问题 1. Halcon 加载 ONNX 模型时需要哪些特殊处理? 2. 如何优化 Halcon 深度学习模型的推理速度? 3. 在工业检测场景中,Halcon 与传统深度学习框架(如 TensorFlow)有何协作方式? 4. 如何处理 Halcon 深度学习模型输出中的假阳性问题? 5. 哪些硬件配置能最大化 Halcon 深度学习模块的性能?
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值