YOLOV5 + PYQT5双目测距
- 1. 测距源码
- 2. 测距原理
- 3. PYQT环境配置
- 4. 实验结果
1. 测距源码
详见文章 YOLOV5 + 双目测距(python)
2. 测距原理
如果想了解双目测距原理,请移步该文章 双目三维测距(python)
3. PYQT环境配置
首先安装一下pyqt5
pip install PyQt5
pip install PyQt5-tools
接着再pycharm设置里配置一下
添加下面两个工具:
工具1:Qt Designer
Program D:\Anaconda3\Lib\site-packages\qt5_applications\Qt\bin\designer.exe#代码所用环境路径
Arauments : $FileName$
Working directory :$FileDir$
工具2:PyUIC
Program D:\Anaconda3\Scripts\pyuic5.exe
Arguments : $FileName$ -o $FileNameWithoutExtension$.py
Working directory :$FileDir$
创建一个main.py文件,将以下代码写入
import sys
import os
from PIL import Image
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class filedialogdemo(QWidget):
def __init__(self, parent=None):
super(filedialogdemo, self).__init__(parent)
self.resize(500,500)
layout = QVBoxLayout()
self.btn = QPushButton("加载图片")
self.btn.clicked.connect(self.getfile)
layout.addWidget(self.btn)
self.le = QLabel(" csdn:积极向上的mr.d")
self.btn1 = QPushButton("加载本地摄像头")
self.btn1.clicked.connect(self.getfiles)
layout.addWidget(self.btn1)
layout.addWidget(self.le)
self.setLayout(layout)
self.setWindowTitle("双目测距系统")
def getfile(self):
'''
getOpenFileName():返回用户所选择文件的名称,并打开该文件
第一个参数用于指定父组件
第二个参数指定对话框标题
第三个参数指定目录
第四个参数是文件扩展名过滤器
'''
self.fname, _ = QFileDialog.getOpenFileName(self, 'Open file',r'C:\Users\hp\Desktop\sale\yolov5_ceju_pro\data\images',"Image files (*.jpg *.gif *.mp4)")
self.le.setPixmap(QPixmap(self.fname))
import shutil
shutil.rmtree('./runs/detect/exp')
str=(r'python C:\Users\hp\Desktop\sale\yolov5_ceju_pro\detect_01.py --source ' + self.fname+ ' --exist-ok ')
os.system(str) # 运行图片识别文件
path = os.listdir(r'C:\Users\hp\Desktop\sale\yolov5_ceju_pro\runs\detect\exp')
s = path[0]
pathend = r'C:\Users\hp\Desktop\sale\yolov5_ceju_pro\runs\detect\exp'+ '\\'+ s
I = Image.open(pathend)
I.show()
def getfiles(self): # 加载摄像头
str=(r'python C:\Users\hp\Desktop\sale\yolov5_ceju_pro\detect_01.py ') # python命令 + B.py + 参数:IC.txt'
os.environ['CUDA_LAUNCH_BLOCKING'] = '1' # 不加这个可能会报错
os.system(str)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = filedialogdemo()
ex.show()
sys.exit(app.exec_())
4. 实验结果
点击运行即可实现检测
这些都是最基础的,文章内容后续会慢慢完善…