【发布时间】:2017-09-18 17:47:42
【问题描述】:
我在 Ubuntu,python 2.7。使用 OpenCV。
我试图准确理解函数 cv2.connectedComponents 正在做什么。 这是图片:
代码:
import cv2
import numpy as np
img = cv2.imread('BN.tif', 0)
img = np.uint8(img)
_, markers = cv2.connectedComponents(img)
据我了解,这个函数创建了一个与提供的图像大小相同的数组。对于检测到的每个组件,为该组件的所有 (y,x) 位置分配相同的编号。如果背景全为“0”,则圆圈全为“1”,下一个正方形全为“2”,依此类推。最后一个组件应全为“19”。我通过获取定义组件的最高数字来读取组件的数量:
np.amax(markers)
我应该得到 19,但我得到 1。
我的问题:为什么我只得到 1 个组件?
【问题讨论】:
-
因为前景物体应该是白色的,而背景是黑色的。反转图像!
img = 255 - img; -
哎哟......我怎么会这样......这是正确的!谢谢