gpt4 book ai didi

python - opencv python connectedComponents 选择每个标签的组件

转载 作者:太空宇宙 更新时间:2023-11-03 23:16:19 26 4
gpt4 key购买 nike

我想选择这张图片的每个组成部分:

enter image description here

在实践中,每个三角形都有其标签。我不知道怎么办。我有这段代码:

#!/usr/bin/python
import cv2
import numpy as np
img = cv2.imread('invMehs.png', -1)
imGray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, imBw = cv2.threshold(imGray, 250, 255, cv2.THRESH_BINARY)

invBwMesh = cv2.bitwise_not(imBw)
Mask = np.ones(imBw.shape, dtype="uint8") * 255

connectivity = 4
output = cv2.connectedComponentsWithStats(imBw, connectivity, cv2.CV_32S)
num_labels = output[0]
labels = output[1]
stats = output[2]
centroids = output[3]
labels = labels + 1

b = ( labels == 1)
cv2.imwrite('tst.jpg',labels[b])

但是图像完全是黑色的 :S非常感谢。

最佳答案

您要保存的图像 (labels[b]) 仅包含细线 (greylevel 1)。当使用 JPEG 格式保存图像时,压缩算法会平滑它们,但由于它们与背景只有 1 个灰度级,因此会被删除。这就是你得到黑色图像的原因

以 PNG 格式保存不会改变图像标签。

为了保留每个连接组件的所有标签(背景为 0),要编写的代码应为:

cv2.imwrite('labels.png',output[1])

关于python - opencv python connectedComponents 选择每个标签的组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38826280/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com