Pycharm open CV learning 9

Eddie Chen
5 min readJun 3, 2021

顏色追蹤

  1. 開啟照相機
  2. 找到你要追蹤的顏色
  3. 先找尋顏色定義

開相機顏色追蹤

import cv2
import numpy as np
frameWidth=640
frameHeight=480

cap = cv2.VideoCapture(0)
cap.set(3,frameWidth)
cap.set(4,frameHeight)
cap.set(10,150)

myColors = [[0,179,50,255,200,255],
[0,179,82,255,193,255],
[0,179,82,255,193,255]]
######################################

def findColor(img,myColors):
imgHSV = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
lower = np.array(myColors[0][0:3])
upper = np.array(myColors[0][3:6])
mask = cv2.inRange(imgHSV,lower,upper)
cv2.imshow("img",mask)

while True:
success, img = cap.read()
findColor(img, myColors)
cv2.imshow("Result", img)
#cv2.imshow("ResultmyColor", imgmyColors)
if cv2.waitKey(1) & 0xFF == ('q'):
break

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

需要調整下面參數

myColors = [[0,179,50,255,200,255],
[0,179,82,255,193,255],
[0,179,82,255,193,255]]

利用下面這個程式照到最適合的顯色效果

import cv2
import numpy as np
def empty(a):
pass
path = 'resources/10.jpg '
cv2.namedWindow("Kevin track Bar")
cv2.resizeWindow("Kevin track Bar",640,240)
cv2.createTrackbar("HUG Min","Kevin track Bar",0,179,empty)
cv2.createTrackbar("HUG Max","Kevin track Bar",179,179,empty)
cv2.createTrackbar("sat Min","Kevin track Bar",0,255,empty)
cv2.createTrackbar("sat Max","Kevin track Bar",255,255,empty)
cv2.createTrackbar("val Min","Kevin track Bar",0,255,empty)
cv2.createTrackbar("val Max","Kevin track Bar",255,255,empty)

while True:
img=cv2.imread(path)
imgHSV = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
h_min = cv2.getTrackbarPos("HUG Min","Kevin track Bar")
h_max = cv2.getTrackbarPos("HUG Max","Kevin track Bar")
s_min = cv2.getTrackbarPos("sat Min","Kevin track Bar")
s_max = cv2.getTrackbarPos("sat Max","Kevin track Bar")
v_min = cv2.getTrackbarPos("val Min","Kevin track Bar")
v_max = cv2.getTrackbarPos("val Max","Kevin track Bar")

print(h_min,h_max,s_min,s_max,v_min,v_max)

lower = np.array([h_min,s_min,v_min])
upper = np.array([h_max,s_max,v_max])
mask = cv2.inRange(imgHSV,lower,upper)

cv2.imshow("Kevin",img)
cv2.imshow("Kevin hsv",imgHSV)
cv2.imshow("mask",mask)
cv2.waitKey(1)

--

--