为什么边界被检测为 cv2.findContours 的轮廓?

Why is boudary detected as a contour with cv2.findContours?

如果函数 cv2.findContours() 正在寻找白色障碍物,那么可以将边界视为障碍物。但是,为什么黑色的帽子会被当成障碍物,在上面形成一个轮廓呢?

findContours 将白色像素视为前景,因此对于这种情况,您可以反转图像。

假设您总是使用统一的背景,您可能想要使用一些预处理(如 sobel 或某种颜色分类),然后 运行 findContours。