yolov8 检测框
时间: 2025-01-14 10:14:53 浏览: 111
### 使用YOLOv8绘制目标检测框
为了使用YOLOv8进行目标检测并绘制检测框,可以按照以下方法操作。此过程涉及加载预训练模型、执行推理以及可视化结果。
#### 加载YOLOv8预训练模型
首先,需要导入必要的库,并实例化YOLO类来加载预训练权重文件:
```python
from ultralytics import YOLO
model = YOLO('yolov8s.pt')
```
#### 执行图像上的预测
接着,在给定的输入图片上运行模型以获取预测结果:
```python
results = model.predict(source='image.jpg', conf=0.25, iou=0.45)
```
这里`conf`参数设置了置信度阈值,而`iou`则定义了非极大抑制交并比阈值[^1]。
#### 可视化检测结果
最后一步是遍历返回的结果对象列表,并提取边界框坐标和其他相关信息用于绘图:
```python
import cv2
import numpy as np
for result in results:
boxes = result.boxes.cpu().numpy()
for box in boxes:
rbox = box.xyxy[0].astype(int) # 获取矩形框位置
score = round(float(box.conf), 2) # 获得分数
image = cv2.imread('image.jpg')
color = (0, 255, 0) # 设置颜色为绿色
thickness = 2 # 边界线宽度
# 绘制边框
image = cv2.rectangle(image, tuple(rbox[:2]), tuple(rbox[2:]), color, thickness)
label = f'{score:.2f}'
(label_width, label_height), baseline = cv2.getTextSize(label, cv2.FONT_HERSHEY_SIMPLEX, 0.5, 1)
# 添加标签背景
image = cv2.rectangle(image, (rbox[0], rbox[1]-label_height-baseline), (rbox[0]+label_width, rbox[1]), color, -1)
# 显示得分
image = cv2.putText(image, label, (rbox[0], rbox[1]-baseline), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 0), 1, cv2.LINE_AA)
cv2.imshow("Detection", image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
上述代码片段展示了如何读取一张测试图片并通过OpenCV函数在其上画出由YOLOv8识别出来的物体包围盒及其对应的分类概率值[^2]。
阅读全文
相关推荐

















