- HSV颜色过滤
HSV颜色模型,共色调、饱和度、值三个参数
H是色调,S是饱和度, S = 0时,只有灰度,V是明度
import cv2 as cv import numpy as np cap = cv.VideoCapture(0) while(1): # Take each frame _, frame = cap.read() # Convert BGR to HSV hsv = cv.cvtColor(frame, cv.COLOR_BGR2HSV) # define range of blue color in HSV lower_blue = np.array([110,50,50]) upper_blue = np.array([130,255,255]) # Threshold the HSV image to get only blue colors mask = cv.inRange(hsv, lower_blue, upper_blue) # Bitwise-AND mask and original image res = cv.bitwise_and(frame,frame, mask= mask) cv.imshow('frame',frame) cv.imshow('mask',mask) cv.imshow('res',res) k = cv.waitKey(5) & 0xFF if k == 27:#ESC键退出 break cv.destroyAllWindows()View Code
inRange() 将保留范围内的颜色通道,其余均置0
将RGB转为HSV
>>> green = np.uint8([[[0,255,0 ]]]) >>> hsv_green = cv.cvtColor(green,cv.COLOR_BGR2HSV) >>> print( hsv_green ) [[[ 60 255 255]]]
[H-10, 100,100] and [H+10, 255, 255] 作为the lower bound和 upper bound