怎么提取minAreaRect函数里中心坐标,宽度,高度的信息
时间: 2024-04-19 21:28:30 浏览: 7
在OpenCV中,使用minAreaRect函数返回的结果是一个RotatedRect结构体,其中包含了最小外接矩形的信息,包括中心坐标、宽度和高度等。
要提取minAreaRect函数返回结果中的中心坐标、宽度和高度信息,可以按照以下步骤进行:
1. 使用minAreaRect函数计算最小外接矩形:
```python
rect = cv2.minAreaRect(contour)
```
这里的`contour`是轮廓的数据。
2. 从RotatedRect结构体中提取中心坐标、宽度和高度信息:
```python
center = rect.center
width = rect.size[0]
height = rect.size[1]
```
`center`是一个包含中心坐标的元组`(x, y)`,`size`是一个包含宽度和高度的元组`(width, height)`。
完整的示例代码如下:
```python
import cv2
# 读取图像并转为灰度图像
image = cv2.imread('image.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 进行边缘检测
edges = cv2.Canny(gray, 50, 150)
# 查找轮廓
contours, _ = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 遍历轮廓
for contour in contours:
# 计算最小外接矩形
rect = cv2.minAreaRect(contour)
# 提取中心坐标、宽度和高度
center = rect.center
width = rect.size[0]
height = rect.size[1]
# 打印信息
print("Center:", center)
print("Width:", width)
print("Height:", height)
```
在上述代码中,我们首先读取图像并将其转换为灰度图像,然后进行边缘检测以获取图像的边缘。接下来,我们使用findContours函数找到轮廓,并遍历每个轮廓。在每个轮廓上,我们使用minAreaRect函数计算最小外接矩形,并提取其中心坐标、宽度和高度信息,最后打印出来。