基于pyqt5实现yolov6遥感DIOR数据集目标检测工具

本文介绍了如何使用PyQt5构建一个用户界面,实现基于YOLOV6的遥感影像目标检测功能。用户可以选择图片文件夹,预览并进行预测,支持保存预测结果。完整代码可通过加入特定星球获取。
摘要由CSDN通过智能技术生成
alt

今天我们分享基于pyqt5目标检测的GUI界面工具。下面来看一下目前的一个简单展示。

  • 进入界面后,会默认选择内置的模型。也就是之前文章分享的YOLO V6实现DIOR数据集遥感影像目标检测 alt

  • 点击右侧按钮可以选取需要测试的图片文件夹(注意是文件夹,不是文件),会默认加载所有符合要求的图片。 alt

选取成功后,图片会默认展示,展示文件夹的第一张图片。 点击上一张或下一张可以切换浏览文件夹内的图片。

  • 点击预测按钮,即可对当前浏览图片进行预测,预测结果展示在展示框中。 alt alt

  • 如果需要保存预测结果,可以在右下方选择保存路径,而后再进行预测,那么图片就会保存到相应的文件夹中。

  • 如果需要获取完整代码,请加入我们的星球

获取方法

如有需要,请加入我们的星球! alt 加入前不要忘了在公众号首页领取优惠券哦!

本文由 mdnice 多平台发布

  • 10
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一个基于PyQt5YoloV5实现目标检测界面的代码示例: ```python from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QFileDialog from PyQt5.QtGui import QPixmap import sys import cv2 import numpy as np import torch import yaml # 加载YoloV5预训练模型 model = torch.hub.load('ultralytics/yolov5', 'yolov5s', pretrained=True) class App(QWidget): def __init__(self): super().__init__() self.title = 'YoloV5目标检测' self.left = 50 self.top = 50 self.width = 800 self.height = 600 self.initUI() def initUI(self): self.setWindowTitle(self.title) self.setGeometry(self.left, self.top, self.width, self.height) # 显示图片的标签 self.label = QLabel(self) self.label.setGeometry(20, 20, 600, 400) # 打开文件按钮 self.openButton = QPushButton('打开文件', self) self.openButton.setGeometry(20, 450, 100, 30) self.openButton.clicked.connect(self.openFile) # 检测按钮 self.detectButton = QPushButton('检测', self) self.detectButton.setGeometry(140, 450, 100, 30) self.detectButton.clicked.connect(self.detect) self.show() # 打开文件对话框 def openFile(self): options = QFileDialog.Options() options |= QFileDialog.DontUseNativeDialog fileName, _ = QFileDialog.getOpenFileName(self,"打开文件","","图片文件 (*.jpg *.png *.bmp)", options=options) if fileName: self.image = cv2.imread(fileName) self.image = cv2.cvtColor(self.image, cv2.COLOR_BGR2RGB) self.showImage() # 将图片显示在标签上 def showImage(self): h, w, ch = self.image.shape bytesPerLine = ch * w qImg = QImage(self.image.data, w, h, bytesPerLine, QImage.Format_RGB888) pixmap = QPixmap.fromImage(qImg) pixmap = pixmap.scaled(600, 400) self.label.setPixmap(pixmap) # 目标检测 def detect(self): # 将图片转换为numpy数组并归一化 img = self.image / 255.0 # 进行目标检测 results = model(img) # 获取框选框和类别 boxes = results.xyxy[0].numpy() classes = results.names[results.pred[0].numpy()] # 在图片上绘制框选框和类别 for i in range(len(boxes)): box = boxes[i] cls = classes[i] x1, y1, x2, y2 = box.tolist() cv2.rectangle(self.image, (int(x1), int(y1)), (int(x2), int(y2)), (0, 255, 0), 2) cv2.putText(self.image, cls, (int(x1), int(y1) - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.9, (0, 255, 0), 2) # 显示带有检测结果的图片 self.showImage() if __name__ == '__main__': app = QApplication(sys.argv) ex = App() sys.exit(app.exec_()) ``` 这段代码创建了一个包含打开文件、检测按钮和显示图片的标签的窗口,当用户点击打开文件按钮时,可以打开一个图片文件;当用户点击检测按钮时,会调用YoloV5模型进行目标检测,并在图片上绘制框选框和类别,最后显示带有检测结果的图片。注意,由于该代码示例使用了PyTorch的YoloV5预训练模型,因此需要先安装PyTorch和YoloV5模型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DataAssassin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值