python最小包围旋转矩形边框
时间: 2025-01-09 12:44:58 浏览: 3
### 使用 OpenCV 和 NumPy 实现最小包围旋转矩形
为了实现计算并绘制最小包围旋转矩形,在 Python 中可以借助 `cv2.minAreaRect` 函数。此函数能够找到给定二维点集的最小面积外接矩形,该矩形可能是倾斜的。
```python
import cv2
import numpy as np
# 定义一些随机点作为轮廓
pts = np.array([[25, 70], [70, 25],
[180, 50], [200, 120]], dtype=np.int32)
# 将这些点转换成适合minAreaRect的形式
rect = cv2.minAreaRect(pts)
# 获取用于绘制的四个角点坐标
box = cv2.boxPoints(rect)
box = np.intp(box)
# 创建空白图像以显示结果
img = np.zeros((256, 256, 3), dtype=np.uint8)
# 绘制原始点以及最小包围盒
for point in pts:
img = cv2.circle(img, tuple(point), radius=4,
color=(0, 0, 255), thickness=-1)
img = cv2.drawContours(img, [box], 0, (0, 255, 0), 2)
# 展示最终的结果图片
cv2.imshow("Image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
上述代码创建了一个包含几个离散点的数据结构,并调用了 `cv2.minAreaRect()` 来获取最小包围矩形的信息。接着通过 `cv2.boxPoints()` 得到这个矩形四条边上的顶点位置以便于后续操作,比如在此基础上进行绘画展示[^2]。
阅读全文