获取图像python opencv中每个白色对象的大小

时间:2017-11-16 10:35:06

标签: python opencv size mask

我正在尝试获取此图像中每个单独对象的大小,以便我可以按大小分隔它们。我的目标是能够循环它们并按大小分开它们。我到处寻找,无法在任何地方找到任何东西。我尝试过连接组件分析,但我不确定如何从中检索大小值。

_, lab = cv2.connectedComponents(img)

picture

1 个答案:

答案 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的大小。