opencv如何求取一些点集的最小外接正矩形
时间: 2023-10-19 16:06:15 浏览: 222
OpenCV提供了函数`cv2.minAreaRect()`来求取一些点集的最小外接正矩形。
具体步骤如下:
1. 定义一个包含点集的numpy数组。
2. 使用函数`cv2.minAreaRect()`传入点集数组,获得最小外接矩形的信息,包括最小外接矩形的中心点坐标、长宽、旋转角度等。
3. 使用函数`cv2.boxPoints()`传入最小外接矩形的信息,返回矩形四个顶点的坐标。
4. 将四个顶点坐标转换为整数类型,并使用函数`cv2.drawContours()`将最小外接矩形画出来。
示例代码如下:
``` python
import cv2
import numpy as np
# 定义点集
points = np.array([[100, 100], [150, 200], [300, 150], [200, 50]], dtype=np.int32)
# 求取最小外接矩形
rect = cv2.minAreaRect(points)
# 获取矩形四个顶点的坐标
box = cv2.boxPoints(rect)
# 将顶点坐标转换为整数类型
box = np.int0(box)
# 绘制最小外接矩形
img = np.zeros((400, 400, 3), dtype=np.uint8)
cv2.drawContours(img, [box], 0, (0, 255, 0), 2)
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
运行上述代码,可以得到如下图像:
![最小外接矩形示例图](https://img-blog.csdn.net/20180531103405448?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3BpY3R1cmVfc2VydmljZQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/80)
阅读全文