findcontours()函数python
时间: 2024-09-15 11:00:26 浏览: 30
Python通过OpenCV的findContours获取轮廓并切割实例
5星 · 资源好评率100%
`findContours()` 函数在 Python 中通常是与 OpenCV 库一起使用,用于查找图像中的轮廓。轮廓可以被认为是连接所有连续点(沿着边界),具有相同颜色或强度的曲线,具有形状的不同特征。`findContours()` 函数可以在二值图像中检测物体的轮廓。
这个函数有几个参数,可以用来控制轮廓检索的方式、轮廓近似方法等。基本用法如下:
```python
import cv2
# 读取图像
image = cv2.imread('image.jpg')
# 转换为灰度图
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 应用阈值或Canny边缘检测来创建二值图像
ret, thresh = cv2.threshold(gray, 127, 255, 0)
# 查找轮廓
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
```
在上面的代码中,`cv2.findContours()` 返回了两个值:轮廓列表和它们的层次结构。轮廓列表是一个Python列表,其中每个轮廓都是图像中一个物体边界点的坐标集合。层次结构是一个可选输出,它描述了轮廓之间的父子关系。
`cv2.RETR_TREE` 参数使得函数检索所有的轮廓,并重建嵌套轮廓的整个层次结构。`cv2.CHAIN_APPROX_SIMPLE` 参数则用于压缩水平或垂直方向上的冗余点,只保存起点和终点的坐标。
阅读全文