yolov5 6.0中detect.py中通过摄像头检测并绘制框的代码
时间: 2024-05-16 21:13:14 浏览: 174
以下是使用 yolov5 6.0 中的 detect.py 文件通过摄像头检测并绘制框的代码示例:
```python
import cv2
from yolov5.detect import detect, load_model_and_classes
# 加载模型和类别
model, classes = load_model_and_classes('yolov5s.pt', 'coco.names')
# 打开摄像头
cap = cv2.VideoCapture(0)
while True:
# 读取一帧图像
ret, frame = cap.read()
# 对图像进行检测
results = detect(model, classes, frame)
# 绘制检测结果
for result in results:
x1, y1, x2, y2, class_id, confidence = result
label = f"{classes[class_id]} {confidence:.2f}"
cv2.rectangle(frame, (x1, y1), (x2, y2), (0, 255, 0), 2)
cv2.putText(frame, label, (x1, y1 - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)
# 显示图像
cv2.imshow('frame', frame)
# 按下 q 键退出
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放摄像头并关闭窗口
cap.release()
cv2.destroyAllWindows()
```
上述代码中,我们首先通过 `load_model_and_classes()` 函数加载模型和类别,接着打开摄像头,并在一个循环中读取图像并进行检测。对于每一帧图像,我们使用 `detect()` 函数进行检测,得到检测结果后,使用 `cv2.rectangle()` 和 `cv2.putText()` 函数绘制检测框和类别标签,最后使用 `cv2.imshow()` 函数显示图像,并等待用户按下 q 键退出。
阅读全文