cv.findContours如何使用
时间: 2023-07-20 13:06:02 浏览: 68
Python通过OpenCV的findContours获取轮廓并切割实例
5星 · 资源好评率100%
cv.findContours是OpenCV中用于查找图像中轮廓的函数。它的语法如下:
```
cv.findContours(image, mode, method[, contours[, hierarchy[, offset]]])
```
其中,参数含义如下:
- image:输入图像,必须为8位单通道图像。
- mode:轮廓检索模式,有四种,分别为cv.RETR_EXTERNAL、cv.RETR_LIST、cv.RETR_CCOMP和cv.RETR_TREE。
- method:轮廓逼近方法,有三种,分别为cv.CHAIN_APPROX_NONE、cv.CHAIN_APPROX_SIMPLE和cv.CHAIN_APPROX_TC89_KCOS。
- contours:输出参数,检测到的轮廓,每个轮廓表示为一个点集,可以是一个Python列表。
- hierarchy:输出参数,可选的轮廓层次结构信息,以numpy数组的形式返回。
- offset:可选参数,轮廓点的偏移量。
下面是一个简单的示例代码,展示如何使用cv.findContours查找图像中的轮廓:
```python
import cv2 as cv
import numpy as np
img = cv.imread('image.jpg')
gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
_, thresh = cv.threshold(gray, 127, 255, cv.THRESH_BINARY)
contours, hierarchy = cv.findContours(thresh, cv.RETR_TREE, cv.CHAIN_APPROX_SIMPLE)
cv.drawContours(img, contours, -1, (0, 255, 0), 3)
cv.imshow('image', img)
cv.waitKey(0)
```
这个示例代码加载一张图像,将其转换成灰度图像,然后使用cv.threshold函数二值化,最后使用cv.findContours函数查找轮廓并绘制轮廓。
阅读全文