yolov8中关于画框的代码
时间: 2025-06-17 11:07:36 浏览: 25
### YOLOv8 绘制边界框的代码实现
YOLOv8 的检测结果可以通过 OpenCV 来绘制边界框。以下是基于 Python 和 OpenCV 实现的一个简单示例,展示如何从预测结果中提取边界框并将其绘制到图像上。
#### 示例代码
```python
import cv2
import numpy as np
# 加载图片
image_path = 'ultralytics/data/images/bus.jpg'
img = cv2.imread(image_path)
# 假设这是通过 yolov8 得到的预测结果
predictions = [
{'class': 'bus', 'confidence': 0.95, 'box': [100, 100, 300, 300]}, # 左上角(x,y), 右下角(x,y)
]
# 颜色定义 (B,G,R),这里我们用蓝色表示边界框
color = (255, 0, 0) # 蓝色
for pred in predictions:
box = pred['box']
class_name = pred['class']
# 提取坐标
x_min, y_min, x_max, y_max = map(int, box)
# 绘制矩形框
img = cv2.rectangle(img, (x_min, y_min), (x_max, y_max), color, thickness=2)[^2]
# 添加标签文字
label = f"{class_name}: {pred['confidence']:.2f}"
(text_width, text_height), _ = cv2.getTextSize(label, cv2.FONT_HERSHEY_SIMPLEX, 0.6, 1)
img = cv2.rectangle(
img,
(x_min, y_min - text_height),
(x_min + text_width, y_min),
color,
-1
)
img = cv2.putText(
img,
label,
(x_min, y_min - 5),
cv2.FONT_HERSHEY_SIMPLEX,
0.6,
(255, 255, 255),
1,
cv2.LINE_AA
)[^2]
# 显示结果
cv2.imshow('Detection Result', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
#### 解释
- 使用 `cv2.rectangle` 函数来绘制边界框[^2]。
- 边界框的颜色由 `(B,G,R)` 定义,此处选择了蓝色作为默认颜色。
- 文本标签显示类别名称及其置信度分数,并使用 `cv2.putText` 将其绘制在边界框上方[^2]。
- 如果需要保存结果图,可以调用 `cv2.imwrite` 方法将处理后的图像存储到文件中。
此方法适用于任何返回边界框坐标的对象检测框架,包括 YOLOv8。
---
###
阅读全文
相关推荐


















