opencv python num_labels, labels, stats, centroids = cv2.connectedComponentsWithStats(thresh) 如何将二值图像中的连通域以外的区域变为黑色
时间: 2024-02-17 17:01:08 浏览: 130
使用OpenCV获取图片连通域数量,并用不同颜色标记函
可以使用以下代码将二值图像中的连通域以外的区域变为黑色:
```python
import cv2
# 读取二值图像
img = cv2.imread('binary_image.png', 0)
# 进行连通域分析
num_labels, labels, stats, centroids = cv2.connectedComponentsWithStats(img)
# 获取背景的标签
background_label = labels[0, 0]
# 将连通域以外的区域变为黑色
for i in range(img.shape[0]):
for j in range(img.shape[1]):
if labels[i, j] != background_label:
img[i, j] = 0
# 显示结果
cv2.imshow('result', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上述代码中,我们首先读取二值图像并进行连通域分析,然后获取背景的标签。最后,我们遍历整个图像,将不属于背景标签的像素点设置为黑色。
阅读全文