当前位置: 首页 > news >正文

国外优秀论文网站信息流优化

国外优秀论文网站,信息流优化,哪里有免费的网站推广,怎样给网站做app声明#xff1a;笔记是做项目时根据B站博主视频学习时自己编写#xff0c;请勿随意转载#xff01; 一、环境安装 VScode/Pycharm终端进入虚拟环境后#xff0c;输入下面代码安装pyside6#xff0c;若用的Pycharm作为集成开发环境#xff0c;也下载个pyqt5#xff1a; …声明笔记是做项目时根据B站博主视频学习时自己编写请勿随意转载 一、环境安装 VScode/Pycharm终端进入虚拟环境后输入下面代码安装pyside6若用的Pycharm作为集成开发环境也下载个pyqt5 pip install pyside6 pip install pyqt5 安装完pyside6时其实一并安装了qtdesigner这个工具可让我们以拖拽的方式设计界面按下面方法找到这个工具放在桌面以便后续使用 终端输入 where python 现在用的虚拟环境是第二个找到找到虚拟环境path/lib/site-packages/Pyside6/designer.exe 右键创建桌面快捷方式并打开界面如下 注意这个工具生成的文件为.ui文件不是.py文件还需要一个编译器编译为.py文件若用的VScode在左侧扩展中安装插件qt for python即可若用的Pycharmui文件转换为py可参考这篇博客记得先安装pip install pyqt5 Pycharm的QT Designer的.ui转.py文件http://t.csdnimg.cn/M8TlS 二、QT Designer进行UI设计 ①创建一个Main Window ②利用左侧的Label创建两个图片显示框一个显示原图片/视频另一个显示检测结果 ③按钮选择是检测图片还是视频用到左侧的Push Button 布局如下文字位置等可在右侧属性编辑器中更改居中图片和检测结果框需选中scaledContents勾选因为实际图片的尺寸是不确定的。 为了区分名称可以在右侧对象框中根据实际作用更改名称原始图片Label命名为input检测结果Label命名为output按钮分别是det_image和det_video 如此UI设计结束将其保存在我们的yolov5-7.0文件夹中.ui文件命名为main_window  三、后端逻辑设计 首先利用上面提供的方法将.ui文件转换为.py文件同名放在了文件夹如下图 在yolov5-7.0文件夹中创建一个名为base_ui.py的文件用于编写我们的后端逻辑先写个框架 import sys from PyQt5.QtWidgets import QMainWindow, QApplication #注如果用的VScode就是from Pyside6 from main_window import Ui_MainWindowclass MainWindow(QMainWindow, Ui_MainWindow): #新建一个MainWindow类继承了两个类一个导入的QMainWindow另一个是main_window.py文件里的Ui_MainWindowdef __init__(self):super(MainWindow, self).__init__()self.setupUi(self) #调用setupUi()它是main_window.py文件里的Ui_MainWindow类里的函数if __name__ __main__:app QApplication(sys.argv)window MainWindow()window.show()app.exec_() 点击运行即可加载出刚才设计的UI界面 然后在代码框架中逐个定义需要的逻辑或者说函数。功能按钮的编写关键在于绑定信号与槽bind_slots)即为每个按钮绑定触发事件。 import sys import cv2 import torch from PyQt5.QtWidgets import QMainWindow, QApplication, QFileDialog #注如果用的VScode就是from Pyside6 from PyQt5.QtGui import QPixmap, QImage from PyQt5.QtCore import QTimer #解决视频检测时阻塞问题循环不用while True用timer from main_window import Ui_MainWindowdef convert2QImage(img): #将array转换为UI Label可以显示的格式height, width, channel img.shapereturn QImage(img, width, height, width*channel, QImage.Format_RGB888)class MainWindow(QMainWindow, Ui_MainWindow): #新建一个MainWindow类继承了两个类一个导入的QMainWindow另一个是main_window.py文件里的Ui_MainWindowdef __init__(self):super(MainWindow, self).__init__()self.setupUi(self) #调用setupUi()它是main_window.py文件里的Ui_MainWindow类里的函数# Model 使用torch.hub.load()函数加载YOLOv5目标检测模型self.model torch.hub.load(./, custom, runs/train/exp9/weights/best, sourcelocal) #参照hub_detect代码加载模型self.timer QTimer() #解决视频检测时阻塞问题循环不用while True用timerself.timer.setInterval(100) #计时间隔msself.video Noneself.bind_slots()def image_pred(self, file_path):# 使用加载的模型对指定的图像进行目标检测。# model()方法接受一个图像路径作为输入并返回检测结果。检测结果包含了检测框的坐标、类别标签和置信度等信息。results self.model(file_path)image results.render()[0] #检测结果图片的array数组但没法直接显示在ui的Label需要上面编写的转换函数convert2QImagereturn convert2QImage(image)def open_image(self):#print(检测图片)file_path QFileDialog.getOpenFileName(self, 选择图片, ./datasets/images/train, Images (*.jpg *.png *.jpeg)) #第一个参数是弹出框的名字第二个参数是默认跳转路径第三个参数过滤只显示某些文件格式的文件#file_path返回一个元组(.../datasets/images/train/30.jpg, Images (*.jpg *.png *.jpeg))# 我们只需要第一个元素file_path[0]。不选路径元组为空if file_path[0]:file_path file_path[0]qimage self.image_pred(file_path)self.input.setPixmap(QPixmap(file_path)) #依据选择路径传入图片文件并显示self.output.setPixmap(QPixmap.fromImage(qimage)) #显示检测结果#print(file_path)def video_pred(self):ret, frame self.video.read() # 抽取一帧放在frameif not ret:self.timer.stop()else:frame cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) # 将这一帧frame转换为常规的RGB格式self.input.setPixmap(QPixmap.fromImage(convert2QImage(frame))) # 依据选择路径传入图片文件并显示# 使用加载的模型对指定的图像进行目标检测。# model()方法接受一个图像路径作为输入并返回检测结果。检测结果包含了检测框的坐标、类别标签和置信度等信息。results self.model(frame)image results.render()[0] #检测结果图片的array数组但没法直接显示在ui的Label需要上面编写的转换函数convert2QImageself.output.setPixmap(QPixmap.fromImage(convert2QImage(image))) # 显示检测结果def open_video(self): #抽帧单个图片检测显示print(检测视频)file_path QFileDialog.getOpenFileName(self, 选择图片, ./datasets, Images (*.mp4))if file_path[0]:file_path file_path[0]self.video cv2.VideoCapture(file_path)self.timer.start()def bind_slots(self):self.det_image.clicked.connect(self.open_image) #当det_image按钮点击时链接执行open_image函数self.det_video.clicked.connect(self.open_video)self.timer.timeout.connect(self.video_pred)if __name__ __main__:app QApplication(sys.argv)window MainWindow()window.show()app.exec_()上面是最终更改好的代码。函数逻辑按钮bind_slots函数里面套了open_image函数和open_video函数绑定槽 然后open_image函数和open_video函数里面分别套了image_pred函数和video_pred函数使得选好图片/视频路径后自动开始检测并显示。 其中原本视频检测用的是抽帧和while true循环检测并显示的逻辑但在前端中经常会遇到时间步长不合适出现阻塞问题后来跟着博主用了qtimer计数器的方法更改过程的视频如下 YOLOv5检测UI可视化timer时间步长更改 最终效果演示如下 YOLOv5检测可视化界面效果演示 如果嫌显示的视频太卡顿可在代码中更改时间步长 self.timer.setInterval(100) #计时间隔ms可以把100改的更小 小BUG 检测视频时切换图片检测输入图片后一闪即逝还在检测刚才的视频。这是由于计时器timer一直在运行需要在open_image()函数中加一句打开图片时关闭timer即可 def open_image(self):#print(检测图片)self.timer.stop()..... 往期精彩 STM32专栏付费9.9http://t.csdnimg.cn/E2F88 OpenCV-Python专栏付费9.9http://t.csdnimg.cn/zK1jV AI底层逻辑专栏付费9.9http://t.csdnimg.cn/zic0f 机器学习专栏免费http://t.csdnimg.cn/FaXzAFreeRTOS专栏免费http://t.csdnimg.cn/SjIqU电机控制专栏免费http://t.csdnimg.cn/FNWM7
http://www.pierceye.com/news/512396/

相关文章:

  • 怎样做好手机网站建设wordpress开启xml rpc
  • 泉州企业网站建设公司做外贸要建什么网站
  • 找人做网站价格永城网站设计公司
  • 如何让网站做网页适配深圳市门户网站建设多少钱
  • 中金超钒 网站建设淘客推广方法
  • 网站建设的基本流程域名备案需要哪些资料
  • 怎么查找网站死链怎么自己做微信推送新闻
  • 做网站的人能看到浏览的人的信息吗怎么刷网站权重
  • 有了域名搭建网站详细步骤服务外包有哪些
  • 外贸网站样式传扬互动网站建设公司
  • 企业网站建设需要哪些资料信息免费推广工具
  • 网站怎么更新网页内容如何把自己的产品放到网上卖
  • jQuery网站建设中倒计时代码提高工作效率的重要性
  • 网站建设业务介绍深圳观澜网站建设
  • 最简单的做网站网站开发项目需求文档
  • wordpress网站打开速度小程序搜索排名帝搜sem880官网
  • 台州做网站公司企业网站seo策略
  • 专业网站建设推广网络营销推广方法和手段有哪些
  • 莘县做网站推广2345浏览器官方网站
  • 深圳网站建设公司为什mrskinlove wordpress
  • html 网站建设中模板网络营销推广与策划
  • 企业管理网站模板asp.net做电商网站设计
  • 萧山建站wordpress主题机制
  • ps可以做网站动态图网页设计参考板式
  • 温州集团网站建设西昌市网站建设公司
  • 奇想网站建设wordpress分页调用代码
  • 站点推广名词解释管理培训课程
  • 做一个网站 多少钱成都到西安
  • 哪个网站做外贸好平面设计广告作品
  • 兰州专业做网站产品网站做营销推广