我正在尝试获取此图像中每个单独对象的大小,以便我可以按大小分隔它们。我的目标是能够循环它们并按大小分开它们。我到处寻找,无法在任何地方找到任何东西。我尝试过连接组件分析,但我不确定如何从中检索大小值。
_, lab = cv2.connectedComponents(img)
答案 0 :(得分:2)
使用connectedComponentsWithStats.
# Choose 4 or 8 for connectivity type
connectivity = 4
output = cv2.connectedComponentsWithStats(img, connectivity, cv2.CV_32S)
num_labels = output[0]
stats = output[2]
for label in range(1,num_labels):
blob_area = stats[label, cv2.CC_STAT_AREA]
blob_width = stats[label, cv2.CC_STAT_WIDTH]
blob_height = stats[label, cv2.CC_STAT_HEIGHT]
num_labels
将提供标签总数。您可以使用stats
矩阵通过迭代每个标签来检索每个blob的大小。