minAreaRect参数说明
时间: 2023-05-26 12:04:52 浏览: 79
minAreaRect函数是OpenCV中的一个函数,用于寻找二进制图像中包含最小矩形的情况。
参数说明:
- points:输入的二维点数组(按照逆时针顺序)。点的坐标可以是整数或浮点数类型,例如,输入的数组可以是vector<Point>类型,其中Point是包含x和y成员的结构体。
- output:输出的矩形(包含坐标、宽和高)。输出的矩形的位置和方向是随机的,因此需要根据输出的矩形坐标计算它的宽和高。
- angle:输出的矩形的角度,从逆时针方向开始计算。如果输出的矩形不是水平的,则可以使用角度来确定矩形的方向以进行后续处理。例如,将矩形旋转到水平方向。
- center:输出的矩形的中心点坐标。可以根据输出的中心点坐标来进行后续处理。
- 返回值:由函数计算出的最小面积矩形的面积。
注意:points中的点集必须是通过cv::convexHull函数计算出的凸包(convex hull)才能保证正确性。
相关问题
cv2.minAreaRect参数详解
cv2.minAreaRect() 函数是 OpenCV 中用于寻找二维图像中最小外接矩形的函数,其函数原型为:
```
rect = cv2.minAreaRect(points)
```
其中,参数 `points` 是一个二维点集,可以是 numpy 数组、列表或元组等类型,表示二维图像中的点集,函数将在这个点集中寻找最小外接矩形。
函数返回值 `rect` 是一个包含矩形中心点、宽度、高度和旋转角度的元组,可以通过下面的方式获取矩形的信息:
```
center, size, angle = rect
```
其中,`center` 表示最小外接矩形的中心点坐标,`size` 是矩形的宽度和高度,`angle` 表示矩形的旋转角度,单位为度。
另外,函数还可以接受第二个可选参数 `boxPoints`,用于输出最小外接矩形的四个顶点坐标,例如:
```
rect, box = cv2.minAreaRect(points, boxPoints=True)
```
其中,`rect` 表示最小外接矩形的信息,`box` 是一个长度为 4 的 numpy 数组,包含最小外接矩形的四个顶点坐标,可以通过下面的方式获取:
```
box = cv2.boxPoints(rect)
```
需要注意的是,返回的坐标是浮点型,需要使用 `np.int0()` 进行转换才能作为绘制函数的参数。
cv2.minAreaRect的参数和选择
cv2.minAreaRect() 函数是用于计算点集的最小包围矩形(也称为旋转矩形)。它的参数如下:
```python
cv2.minAreaRect(points)
```
其中,`points` 表示点集,可以是一个 Numpy 数组或者一个 OpenCV 的 Contours 对象。
选择最小包围矩形的算法取决于 `points` 的维度和形状。如果 `points` 是一个二维的 Numpy 数组,则可以选择使用 OpenCV 提供的两种算法:
- `cv2.cv.Box2D()`:这个函数计算的是能够包含所有点的最小矩形,但这个矩形不一定是水平的。它返回一个带有矩形中心、大小和旋转角度的 Box2D 结构体。
- `cv2.minAreaRect()`:这个函数计算的是能够包含所有点的最小旋转矩形,这个矩形是水平的,也就是说,它的长和宽分别与 x 轴和 y 轴平行。它返回一个带有矩形中心、大小和旋转角度的 RotatedRect 结构体。
如果 `points` 是一个三维的 Numpy 数组,则只能使用 `cv2.minAreaRect()` 函数计算能够包含所有点的最小旋转矩形。