按区域对所有连接的组件进行排序并导出它们失败,如何解决呢?

时间:2018-08-15 10:28:39

标签: python-3.x opencv image-processing

给出200个斑点的图像,我想检索10个最大的斑点:

因此,我使用了 connectedComponentsWithStats 函数,并按其区域( CC_STAT_AREA )对统计信息进行了排序。但似乎统计数据已排序,相应的标签丢失了匹配项:

gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
_, labels, stats, _ = cv2.connectedComponentsWithStats(gray, connectivity=4)
indexes_group = np.argsort(stats[:, cv2.CC_STAT_AREA])
stats = stats[indexes_group]

for component_id, stat in enumerate(stats):
    single_component = (labels == component_id).astype(np.uint8) * 255
    cv2.imwrite("blob" +str(component_id)r+".png",single_component)

我知道每个像素都有其标签的值,并且全0代表背景,即:enter image description here

有人可以请我更深入地解释我,我应该采取什么步骤来修正代码?

谢谢!

0 个答案:

没有答案