yolo如何绘制旋转矩形框
时间: 2025-06-30 15:24:30 AIGC 浏览: 38
### 使用 OpenCV 和 YOLO 进行旋转矩形框绘制
为了实现YOLO目标检测并绘制旋转矩形框,通常会结合OpenCV库来处理图像和图形操作。下面介绍一种具体的方法,在完成YOLO模型预测之后,利用`cv2.minAreaRect()`以及`cv2.boxPoints()`函数获取最小面积外接矩形及其四个顶点坐标,再调用`cv2.drawContours()`画出这些多边形。
#### 获取旋转矩形的步骤
对于每一个由YOLO返回的对象边界框:
- 首先依据中心点位置、宽度高度尺寸转换成适合传给上述两个OpenCV API的形式;
- 调用 `cv2.minAreaRect()` 来获得该对象的最佳拟合旋转矩形描述子 (包含角度信息),此API接受一组二维点作为输入参数,并输出一个元组 `(center(x,y), size(width,height), angle)` 表示倾斜角下的最小包围盒[^1]。
```python
import cv2
import numpy as np
def draw_rotated_rect(image, center_x, center_y, width, height, rotation_angle_degrees):
# 创建一个表示旋转矩形的数据结构
box = ((center_x, center_y), (width, height), rotation_angle_degrees)
# 计算旋转矩形的四个角落点
corners = cv2.boxPoints(box).astype(np.int0)
# 将这四个点组成轮廓形式以便于后续绘图
contour = [corners]
# 在原图上绘制红色实线填充的四边形
cv2.drawContours(image=image, contours=contour, contourIdx=-1, color=(0, 0, 255), thickness=cv2.FILLED)
return image
```
这段代码展示了如何基于已知的目标属性(即中心坐标、宽高及旋转角度),构建对应的旋转矩形,并将其可视化出来。注意这里的颜色设置为BGR模式下纯红[(0, 0, 255)],可以根据个人喜好调整线条粗细或改变填充样式。
#### 结合YOLO预测结果的应用场景
当从YOLO得到一系列物体的位置信息后——比如通过解析网络输出张量提取各项目的置信度得分、类别标签连同它们各自的定位参数(x_center, y_center, bbox_width, bbox_height, theta)——就可以循环遍历所有满足阈值条件的结果项,逐一对应该部分所提及的操作流程执行相应的绘画指令了[^4]。
阅读全文
相关推荐



















