python opencv轮廓检测
时间: 2023-10-07 17:14:30 浏览: 78
Python Opencv实现图像轮廓识别功能
在Python OpenCV中,可以使用cv2.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), 2)
# 显示图像
cv2.imshow('Contours', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在以上示例代码中,首先读取图像并将其转换为灰度图像,然后使用阈值处理将图像转换为二值图像。接着使用cv2.findContours()函数查找轮廓,并使用cv2.drawContours()函数在原始图像上绘制这些轮廓。最后显示绘制后的图像。
cv2.findContours()函数接受三个参数。第一个参数是输入图像,通常是二值化图像。第二个参数是轮廓的检索模式,通常使用cv2.RETR_TREE。第三个参数是轮廓的逼近方法,通常使用cv2.CHAIN_APPROX_SIMPLE。
cv2.drawContours()函数接受五个参数。第一个参数是绘制轮廓的图像,通常是原始图像。第二个参数是轮廓对象,通常是cv2.findContours()函数返回的轮廓对象。第三个参数是轮廓的索引,如果设置为-1,则绘制所有轮廓。第四个参数是轮廓的颜色。第五个参数是轮廓的线宽。
阅读全文