利用连通性给黑色图像中的白色孔洞进行填充,并给出代码
时间: 2024-05-15 20:15:45 浏览: 227
比较两个图片把不同的填充黑色的软件源码
5星 · 资源好评率100%
以下是用Python语言实现的一种方法:
```python
import cv2
import numpy as np
# 读取黑白图像,0表示读取为灰度图像
img = cv2.imread('image.png', 0)
# 反转像素值,使白色变成黑色,黑色变成白色
img = cv2.bitwise_not(img)
# 创建一个与原图像大小相同的全黑图像
fill = np.zeros(img.shape, dtype=np.uint8)
# 找到所有的轮廓
_, contours, hierarchy = cv2.findContours(img, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 绘制所有轮廓,填充白色孔洞
cv2.drawContours(fill, contours, -1, 255, cv2.FILLED)
# 显示结果
cv2.imshow('Original', img)
cv2.imshow('Filled', fill)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
首先,我们读取黑白图像,然后反转像素值,使白色变成黑色,黑色变成白色。接着,我们创建一个与原图像大小相同的全黑图像,用于填充白色孔洞。然后,我们使用OpenCV库的`findContours()`函数找到所有的轮廓,并使用`drawContours()`函数绘制所有轮廓,填充白色孔洞。最后,我们显示原图像和填充后的图像。
阅读全文