首页 > 其他分享 >基于pyqt5的简易目标检测UI

基于pyqt5的简易目标检测UI

时间:2023-08-16 18:55:25浏览次数:35  
标签:__ pixmap layout self pyqt5 label 简易 UI button

没选图像的时候:

被否决的一个系统,也不过多介绍了,留个记录吧,之后可以看看优化一下,也不白写代码。
代码:

from ultralytics import YOLO

from PyQt5.QtWidgets import QApplication, QMainWindow, QFileDialog, QLabel, QPushButton, QHBoxLayout,QVBoxLayout, QWidget
from PyQt5.QtGui import QPixmap,QImage
import sys
import cv2

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        # 创建一个QWidget,作为主窗口的中心部件
        widget = QWidget(self)
        self.setCentralWidget(widget)

        # 创建一个水平布局,添加到中心部件
        layout = QHBoxLayout()
        widget.setLayout(layout)

        # 创建一个垂直布局,添加到水平布局
        layout_left = QVBoxLayout()
        layout.addLayout(layout_left)

        # 创建一个QLabel,用于显示原始图片
        self.label_original = QLabel(self)
        layout_left.addWidget(self.label_original)

        # 创建一个QPushButton,用于选择图片
        self.button_open = QPushButton("Open", self)
        self.button_open.clicked.connect(self.open_file)
        layout_left.addWidget(self.button_open)

        # 创建另一个垂直布局,添加到水平布局
        layout_right = QVBoxLayout()
        layout.addLayout(layout_right)

        # 创建一个QLabel,用于显示处理后的图片
        self.label_processed = QLabel(self)
        layout_right.addWidget(self.label_processed)

        # 创建一个QPushButton,用于处理图片
        self.button_process = QPushButton("Process", self)
        self.button_process.clicked.connect(self.process_image)
        layout_right.addWidget(self.button_process)

        self.model= YOLO('best.pt')

    def open_file(self):
        # 打开文件对话框,选择图片
        file_name, _ = QFileDialog.getOpenFileName(self, "Open Image", "", "Images (*.png *.xpm *.jpg)")

        # 如果选择了图片,则显示
        if file_name:
            pixmap = QPixmap(file_name)
            # 调整QLabel的尺寸为图片的尺寸
            self.label_original.resize(pixmap.width(), pixmap.height())
            self.label_original.setPixmap(pixmap)

        self.src=file_name

    def process_image(self):
        results = self.model(self.src)
        annotated_frame = results[0].plot()
        
        img_rgb = cv2.cvtColor(annotated_frame, cv2.COLOR_BGR2RGB)
        qimg = QImage(img_rgb.data, img_rgb.shape[1], img_rgb.shape[0], QImage.Format_RGB888)
        pixmap = QPixmap.fromImage(qimg)

        self.label_processed.setPixmap(pixmap)


if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

标签:__,pixmap,layout,self,pyqt5,label,简易,UI,button
From: https://www.cnblogs.com/D876887913/p/17635950.html

相关文章

  • elementUI使用el-upload组件上传图片
    <el-form-itemlabel="上传图片":rules="[{required:true,message:'必须要上传图片',trigger:'blur'}]"prop="image"><el-upload:action=webSite......
  • flask swagger ui文档生成
    最近一直在写api文档,不知道兄弟们有没有和我一样的感受,写文档比写代码还难受,写代码逻辑实现提交就完事了,写api文档那才叫难受,有些不合理的地方给反复来回改好几遍,不止代码要改,文档要改,注释要改,关键是文档还要让别人能看得懂为了解决这个痛点我想起了swaggerui文档,因为我......
  • vscode1.80.2 Install terminal quit with output: 过程试图写入的管道不存在
    莫名其妙的错误。如果你尝试了各种修改密钥认证方法,修改密码,修改文件权限都不行,那恭喜你,大家同道中人,遇到了同一个错误。修改ssh的config文件,一般在你的.ssh路径下,windows是C:\Users\用户名\.ssh\config,linux是~/.ssh/config。如果是从code界面上打开,是在远程资源管......
  • jquery.ui的bxslider控件在IE下使用的问题
    使用了 bxslider控件进行网页的切换。发现在firefox切换得很稳定,按照设置的切换时间进行切换。但是换成IE浏览器发现,却不是那么回事了。包括IE8和IE10.明明设置了30秒有的时候10分钟都不切换,本以为切换失灵了,结果又在第11分钟切换了。但是刷新页面再来一次,可能又变成5分钟后切换......
  • Unity UGUI的InputField(输入框)组件的介绍及使用
    UGUI的InputField(输入框)组件的介绍及使用1.什么是UGUI的InputField组件?UGUI的InputField组件是Unity中的一个用户界面组件,用于接收用户的输入。它可以用于创建文本输入框、密码输入框等功能。2.UGUI的InputField组件的工作原理UGUI的InputField组件通过监听用户的输入事件,用......
  • 树莓派Raspbian安装PYQT5
     安装PYQT5.(树莓派Raspbian下pip3installPyQt5是无法正常安装的。)https://zhuanlan.zhihu.com/p/498682983 准备工作。pipinstallwheelsudoapt-getupdate Pip3installsip可直接用官方仓库安装。 sudoaptinstall-ypython3-pyqt5额外组件sudoaptin......
  • 基于buildroot实现initramfs的启动以及文件系统的切换
    以新唐ma35d1开发板为例:1、修改文件:board/nuvoton/ma35d1/uboot-env.txtmmcboot=ifmmcdev0;thenecho"Bootingformmmc......";setenvbootargsroot=/dev/ram0 console=ttyS0,115200n8rdinit=/initmem=${kernelmem};mmcread${kernel_addr_r}0x18000xA000;......
  • 界面组件Telerik UI for WinForms R2 2023——拥有VS2022暗黑主题
    TelerikUIforWinForms拥有适用WindowsForms的110多个令人惊叹的UI控件。所有的UIforWinForms控件都具有完整的主题支持,可以轻松地帮助开发人员在桌面和平板电脑应用程序提供一致美观的下一代用户体验。TelerikUIforWinFormsR22023于今年6月份发布,此版本中集成了备受期......
  • Duilib VerticalLayout 滚动条绘制出错问题
    发现一个奇怪的问题,某个VerticalLayout添加多个控件,滚动条能正常显示但是滚动的时候,绘制出错,如下图: 后来发现xml添加属性bkcolor="#FF0F1415"后正常,应该是缺少bkcolor属性导致绘制异常 记录一下~......
  • 基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程
    (基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程)1Jenkins是什么?学习官网:Jenkins官网,Jenkins中文官网;Jenkins是一款开源CI&CD软件,用于自动化各种任务,包括构建、测试和部署软件;用Java语言编写的,可在Tomcat、Docker等流行的容器中运行,也可独立运行。......