findcontours()函数 python代码例子
时间: 2024-09-06 16:03:04 浏览: 39
`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)
# 创建一个空白的图像,用于绘制轮廓
contour_image = cv2.cvtColor(thresh, cv2.COLOR_GRAY2BGR)
# 在空白图像上绘制所有轮廓
cv2.drawContours(contour_image, contours, -1, (0, 255, 0), 3)
# 显示原图和包含轮廓的图像
cv2.imshow('Original Image', image)
cv2.imshow('Detected Contours', contour_image)
# 等待按键后关闭所有窗口
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个示例中,首先使用`cv2.imread()`函数读取一张图片,然后使用`cv2.cvtColor()`将其转换为灰度图。灰度图接着使用`cv2.threshold()`或`cv2.Canny()`进行处理,以获得二值图像。之后,`cv2.findContours()`函数用于在二值图像中寻找轮廓,`cv2.drawContours()`用于在新图像上绘制这些轮廓。最后,使用`cv2.imshow()`显示原图和包含轮廓的图像,并等待用户按键后关闭窗口。
请确保在运行上述代码之前,已经安装了`opencv-python`库。如果未安装,可以使用`pip install opencv-python`命令进行安装。
阅读全文