findContours 填充
时间: 2023-10-14 13:02:28 浏览: 90
Opencv基于findContours的微小连通域去除
要使用 `findContours` 函数进行填充,你需要按照以下步骤进行操作:
1. 首先,确保你已经加载了图像并将其转换为灰度图像。
2. 使用阈值函数(如 `threshold`)将图像转换为二值图像。这将使边缘更明确。
3. 使用 `findContours` 函数查找图像中的轮廓。该函数将返回一个轮廓列表。
4. 创建与输入图像大小相同的空白图像(可以使用 `numpy.zeros` 创建)。
5. 使用 `drawContours` 函数将轮廓绘制在空白图像上。设置 `thickness` 参数为 -1,以填充轮廓。
下面是一个示例代码,演示了如何使用 `findContours` 函数进行填充:
```python
import cv2
import numpy as np
# 加载图像并转换为灰度图像
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)
# 创建空白图像
filled_image = np.zeros_like(image)
# 绘制轮廓并填充
cv2.drawContours(filled_image, contours, -1, (0, 255, 0), thickness=-1)
# 显示结果
cv2.imshow('Filled Image', filled_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
请注意,此示例代码假定你已经正确安装了 OpenCV 库,并且已将图像命名为 `image.jpg`。你需要根据自己的情况进行调整。
阅读全文