我正在使用 OpenCV 进行手部检测。但是我在尝试脱粒图像的轮廓时很挣扎。findContour
将始终尝试找到白色区域作为轮廓。
所以基本上它在大多数情况下都有效,但有时我的脱粒图像看起来像这样:
_, threshed = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY|cv2.THRESH_OTSU)
因此,要使其正常工作,我只需要更改阈值类型cv2.THRESH_BINARY_INV
。
_, threshed = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY_INV|cv2.THRESH_OTSU)
而且效果很好。
我的问题是如何确定何时需要反转阈值?我是否需要始终在两个脱粒图像上找到轮廓,并比较结果(我这种情况如何?)?或者有一种方法可以缓解知道轮廓是否没有完全丢失。
编辑:有一种方法可以 100% 确定轮廓看起来像一只手吗?
编辑2:所以我忘了提到我正在尝试使用这种方法检测指尖和缺陷,所以我需要缺陷,在第一个脱粒图像中我找不到它们,因为它颠倒了。见第一轮廓图像上的蓝点。
谢谢。