问题描述
这是我的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中所述,您应该使用二进制图像:
计算标记为布尔图像
的连接组件
这意味着所有带有value==0
的像素都被视为背景,而所有带有value>0
的像素都被视为前景。
在图像中,您可能连接了所有前景像素,因此最终只有两个标签。