我想选择此图片的每个组件:
在实践中,每个三角形都由其标签组成。我不明白怎么做。 我有这段代码:
#!/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 非常感谢你。
答案 0 :(得分:0)
要保存的图像(标签[b])仅包含细线(greylevel 1)。使用JPEG格式保存图像时,压缩算法会平滑它们,但由于它们只有1个背景灰度,因此它们会被删除。这就是你获得黑色图像的原因
以PNG格式保存不会改变图像标签。
为了保留每个连接组件的所有标签(背景为0),要编写的代码应为:
cv2.imwrite('labels.png',output[1])