python 查找轮廓 最小外接矩形
时间: 2025-01-07 22:30:11 浏览: 9
### Python OpenCV 查找图像轮廓并计算最小外接矩形
在计算机视觉应用中,OpenCV 提供了强大的工具来处理图像中的几何形状分析。对于寻找图像中的轮廓以及计算这些轮廓的最小外包矩形,可以利用 `cv2.findContours` 函数获取二值化图像内的所有轮廓,并通过 `cv2.minAreaRect` 来得到每个轮廓对应的最小面积矩形。
#### 寻找轮廓
为了提取图像中的轮廓,首先需要有一个二值化的输入图像。这通常可以通过阈值操作或其他分割技术获得。之后调用如下函数:
```python
contours, hierarchy = cv2.findContours(binary_image, mode=cv2.RETR_TREE, method=cv2.CHAIN_APPROX_SIMPLE)
```
这里 `binary_image` 是经过预处理后的黑白图片;`mode` 参数指定了检索模式,而 `method` 则定义了近似方法[^1]。
#### 计算最小外接矩形
一旦获得了轮廓列表,就可以针对每一个感兴趣的轮廓对象求解其最小包围盒:
```python
for cnt in contours:
rect = cv2.minAreaRect(cnt) # 得到最小外接矩形中心点坐标(x,y),宽度w高度h角度a
box = cv2.boxPoints(rect) # 获取四个顶点位置
box = np.int0(box) # 转换为整数类型
cv2.drawContours(image,[box],0,(0,0,255),2) # 绘制红色边框于原图上
```
这段代码遍历所有的轮廓,在每一轮迭代过程中先调用 `minAreaRect()` 方法取得该轮廓的最佳拟合旋转矩形参数,再由 `boxPoints()` 将此信息转换成具体的四角座标以便绘制出来。
阅读全文