def hsv_threshold(img, hue_min, hue_max, sat_min, sat_max, val_min, val_max):
"""
Threshold an HSV image given separate min/max values for each channel.
:param img: an hsv image
:param hue_min:
:param hue_max:
:param sat_min:
:param sat_max:
:param val_min:
:param val_max:
:return: result of the threshold (each binary channel AND'ed together)
"""
hue, sat, val = cv2.split(img)
hue_bin = np.zeros(hue.shape, dtype=np.uint8)
sat_bin = np.zeros(sat.shape, dtype=np.uint8)
val_bin = np.zeros(val.shape, dtype=np.uint8)
cv2.inRange(hue, hue_min, hue_max, hue_bin)
cv2.inRange(sat, sat_min, sat_max, sat_bin)
cv2.inRange(val, val_min, val_max, val_bin)
bin = np.copy(hue_bin)
cv2.bitwise_and(sat_bin, bin, bin)
cv2.bitwise_and(val_bin, bin, bin)
return bin
评论列表
文章目录