对图片进行连通域分析后,如何得到最小外接矩形2
时间: 2023-06-12 20:08:20 浏览: 113
进行连通域分析后,可以得到每个连通域的轮廓信息。最小外接矩形可以通过这些轮廓信息来计算。具体步骤如下:
1. 对于每个连通域,使用 cv2.findContours() 函数得到其轮廓信息。
2. 对于每个轮廓,使用 cv2.minAreaRect() 函数得到其最小外接矩形的信息,包括中心点坐标、长宽和旋转角度。
3. 可以使用 cv2.boxPoints() 函数将最小外接矩形的信息转换为矩形的四个顶点坐标。
4. 最后,可以使用 cv2.rectangle() 函数将最小外接矩形绘制在原始图像中。
下面是一个示例代码:
```python
import cv2
# 读取图像并进行二值化处理
img = cv2.imread('image.png')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
# 进行连通域分析
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
# 绘制每个连通域的最小外接矩形
for contour in contours:
rect = cv2.minAreaRect(contour)
box = cv2.boxPoints(rect)
box = np.int0(box)
cv2.drawContours(img, [box], 0, (0, 0, 255), 2)
# 显示结果
cv2.imshow('Result', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个示例代码中,我们使用 cv2.minAreaRect() 函数得到每个轮廓的最小外接矩形信息,使用 cv2.boxPoints() 函数将矩形信息转换为矩形的四个顶点坐标,最后使用 cv2.drawContours() 函数将最小外接矩形绘制在原始图像中。
阅读全文