opencv中的findContours函数
时间: 2023-11-30 17:41:21 浏览: 89
OpenCV中的findContours函数是一种用于检测物体轮廓的函数。它可以通过对图像进行处理,找到图像中所有的轮廓,并将其存储在一个列表中。下面是findContours函数的一些参数及其含义:
- image:输入图像,可以是灰度图像或二值图像,但通常是二值图像。
- contours:检测到的轮廓,每个轮廓由一系列的点坐标表示。
- hierarchy:可选的输出向量,包含了图像中轮廓的拓扑信息。
- mode:轮廓检索模式,有四种模式可选,分别是RETR_EXTERNAL、RETR_LIST、RETR_CCOMP和RETR_TREE。
- method:轮廓逼近方法,有三种方法可选,分别是CHAIN_APPROX_NONE、CHAIN_APPROX_SIMPLE和CHAIN_APPROX_TC89_L1。
- offset:可选的偏移量,表示轮廓中所有点的偏移量。
下面是一个简单的示例,演示如何使用findContours函数来检测图像中的轮廓:
```python
import cv2
# 读取图像
img = cv2.imread('image.jpg')
# 转换为灰度图像
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)
# 绘制轮廓
cv2.drawContours(img, contours, -1, (0, 255, 0), 3)
# 显示图像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
阅读全文