findContours
时间: 2023-11-02 16:01:21 浏览: 48
`findContours` 是 OpenCV 库中的一个函数,用于在二值图像中查找轮廓。它的使用方法如下:
```python
contours, hierarchy = cv2.findContours(image, mode, method)
```
其中,`image` 为输入的二值图像,`mode` 为轮廓检索模式,`method` 为轮廓近似方法。函数返回两个值,`contours` 为检测到的轮廓,`hierarchy` 为轮廓之间的层级关系。
`mode` 可以取以下四种值:
- `cv2.RETR_EXTERNAL`:只检测外轮廓。
- `cv2.RETR_LIST`:检测所有轮廓,但不建立轮廓之间的层级关系。
- `cv2.RETR_CCOMP`:检测所有轮廓,并将轮廓分为两级,外层轮廓和内层轮廓。
- `cv2.RETR_TREE`:检测所有轮廓,并建立轮廓之间的层级关系。
`method` 可以取以下三种值:
- `cv2.CHAIN_APPROX_NONE`:保存所有的轮廓点。
- `cv2.CHAIN_APPROX_SIMPLE`:压缩水平、垂直和对角方向上相邻的轮廓点,仅保留其端点。
- `cv2.CHAIN_APPROX_TC89_L1` 或 `cv2.CHAIN_APPROX_TC89_KCOS`:应用 Teh-Chin 链逼近算法。
使用 `findContours` 函数需要注意的是,传入的输入图像必须是二值图像,即黑白图像,其中的前景为白色,背景为黑色。如果图像不是二值图像,需要先进行阈值处理或边缘检测等操作,将其转换为二值图像。
阅读全文