opencv 4.4.0 中 connectedComponenentsWithStat 的奇怪行为

Strange behaviour of connectedComponenentsWithStat in opencv 4.4.0

这是我的 8 位图像:

我尝试用 cv2 加载它并拆分成连接的组件:

seg_r=cv2.imread("seg_r.png",0)
seg_num_labels, seg_labels, seg_stats, seg_centroids = cv2.connectedComponentsWithStats(seg_r)
print(seg_stats)

我只得到 2 个巨大的连通分量,即:

[[      0       0    1260    1623   33236]
 [      0       0    1259    1622 2011744]]

(我也试过在图片周围加黑边,但没有成功)。这是为什么?

documentation 中所述,您应该使用二值图像:

computes the connected components labeled image of boolean image

这意味着所有 value==0 的像素都被视为背景,而所有 value>0 的像素都被视为前景。

在您的图像中,您可能连接了所有前景像素,因此您最终只有两个标签。