用opencv获取轮廓之后怎么填充轮廓
时间: 2023-05-23 09:06:58 浏览: 491
OPENCV二值化图像内孔洞填充/小区域去除(含效果图)
5星 · 资源好评率100%
A:从获取的轮廓中,可以使用 `cv2.fillPoly()` 函数填充轮廓。此函数需要两个参数,第一个参数是要填充的图像,第二个参数是包含轮廓点的数组。例如,以下代码段实现了从二值图像中提取轮廓并用红色填充轮廓的操作。
``` python
import cv2
# 读取二值图像
image = cv2.imread('binary_image.jpg', 0)
# 获取轮廓
contours, hierarchy = cv2.findContours(image, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
# 创建彩色图像
color_image = cv2.cvtColor(image, cv2.COLOR_GRAY2BGR)
# 填充轮廓
cv2.fillPoly(color_image, contours, color=(0, 0, 255))
# 显示图像
cv2.imshow('image', color_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个例子里, `cv2.cvtColor()` 函数将二值图像转换成了彩色图像,以便填充颜色。`cv2.fillPoly()` 函数使用的红色填充的颜色是 (0, 0, 255)。最后,使用 `cv2.imshow()` 函数显示填充后的彩色图像。
阅读全文