1.颜色空间转换(RGB转HSV)
为了较准确的调红色和绿色的HSV,我使用cv2.createTrackbar()函数创建了六个滚动条
#创建HSV最低滚动条
cv2.createTrackbar('H_min','image',35,180,nothing)
cv2.createTrackbar('S_min','image',43,255,nothing)
cv2.createTrackbar('V_min','image',46,255,nothing)
#创建HSV最高滚动条
cv2.createTrackbar('H_max','image',0,180,nothing)
cv2.createTrackbar('S_max','image',255,255,nothing)
cv2.createTrackbar('V_max','image',255,255,nothing)
实际效果如图
2.识别颜色并画矩形框
颜色阈值已经确定了,这就可以进行颜色识别了。
为了让识别更稳定,在代码中加入自适应阈值。
th_img = cv2.adaptiveThreshold(mask,255,cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY_INV,5,2)
3.画矩形框