import cv2 import numpy as np cap = cv2.VideoCapture(0) # set blue thresh 設置HSV中藍色、天藍色范圍 lower_blue = np.array([78,43,46]) upper_blue = np.array([110,255,255]) while(1): # get a frame and show 獲取視頻幀並轉成HSV格式, 利用cvtColor()將BGR格式轉成HSV格式,參數為cv2.COLOR_BGR2HSV。 ret, frame = cap.read() cv2.imshow('Capture', frame) # change to hsv model hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) # get mask 利用inRange()函數和HSV模型中藍色范圍的上下界獲取mask,mask中原視頻中的藍色部分會被弄成白色,其他部分黑色。 mask = cv2.inRange(hsv, lower_blue, upper_blue) cv2.imshow('Mask', mask) # detect blue 將mask於原視頻幀進行按位與操作,則會把mask中的白色用真實的圖像替換: res = cv2.bitwise_and(frame, frame, mask=mask) cv2.imshow('Result', res) if cv2.waitKey(1) & 0xFF == ord('q'): break cap.release() cv2.destroyAllWindows()