您错误地设置了上限和下限,它们必须是:
greenLower = (50, 0, 50) # Previously (300, 0, 50)
greenUpper = (300, 128, 250) # Previously (50, 128,250)
还要确保hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
OpenCV 遵循BGR
约定。
编辑:
要在多个范围0~50
和 中分割颜色300~359
,您可以cv2.inRange()
对两个范围执行两次,如下所示:
greenLower1 = (0, 0, 20)
greenUpper1 = (50, 128, 100)
greenLower2 = (300, 0, 20)
greenUpper2 = (359, 128, 100)
mask1 = cv2.inRange(img_hsv, greenLower1, greenUpper1)
mask2 = cv2.inRange(img_hsv, greenLower2, greenUpper2)
mask = cv2.max(mask1, mask2)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句