yolov5 detect.py截取目标框
时间: 2023-10-18 13:02:44 浏览: 166
yolov5_目标检测
5星 · 资源好评率100%
在YOLOv5的`detect.py`中,检测到目标后会将目标的边界框信息存储在`results`列表中。每个检测结果是一个字典,包含以下键值对:
- `'img_id'`:图像id
- `'label'`:目标标签
- `'score'`:置信度得分
- `'box'`:目标边界框坐标,形式为`[x_min, y_min, x_max, y_max]`
如果想要截取目标框,可以使用OpenCV的`cv2.rectangle`函数绘制矩形框,然后使用切片操作截取目标框。下面是一个简单的示例代码:
```python
import cv2
from PIL import Image
# 加载图像
img = cv2.imread('test.jpg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# YOLOv5检测
results = model(img)
# 绘制矩形框并截取目标框
for result in results.xyxy[0]:
label = result[-1]
if label == 'person': # 只截取人的目标框
box = result[:4]
x_min, y_min, x_max, y_max = map(int, box)
cv2.rectangle(img, (x_min, y_min), (x_max, y_max), (0, 255, 0), 2)
target = img[y_min:y_max, x_min:x_max]
target = Image.fromarray(target)
target.save('target.jpg')
```
在上面的代码中,我们首先加载了一张图像,然后使用YOLOv5模型进行检测并得到目标框的坐标信息。接着,我们使用`cv2.rectangle`函数绘制矩形框,并使用切片操作截取目标框。最后,将截取到的目标框保存为一张图像。
阅读全文