opencv的findContours()
时间: 2023-10-17 22:00:29 浏览: 72
test_findcontours_findcontours测试代码_
findContours() 是 OpenCV 中的一个函数,用于在图像中查找轮廓。它可以帮助我们找到图像中的所有对象的边界。该函数接受输入图像、轮廓检测模式和轮廓逼近方法作为参数,并返回一个包含所有轮廓的列表。
在使用 findContours() 函数之前,我们通常需要对图像进行一些预处理,例如将图像转换为灰度图像、二值化或者进行边缘检测。然后,我们可以使用 findContours() 函数来查找图像中的轮廓。
下面是使用 findContours() 函数的一个简单示例:
```
import cv2
# 读取图像并进行预处理
image = cv2.imread('image.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
_, binary = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
# 查找轮廓
contours, _ = cv2.findContours(binary, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 绘制轮廓
cv2.drawContours(image, contours, -1, (0, 255, 0), 2)
# 显示结果
cv2.imshow('Contours', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上述示例中,我们首先读取图像并将其转换为灰度图像。然后,使用阈值化操作将图像二值化。接下来,我们使用 findContours() 函数查找图像中的轮廓。最后,使用 drawContours() 函数绘制轮廓,并显示结果图像。
请注意,findContours() 函数的第一个返回值是轮廓的列表,而第二个返回值是层次结构(Hierarchy)。在绘制轮廓时,我们可以通过指定轮廓索引来绘制特定的轮廓,或者通过设置为 -1 来绘制所有轮廓。
希望这个简单的示例能帮助你理解 findContours() 函数的用法!如果有更多问题,请随时提问。
阅读全文