56 lines
1.5 KiB
Python
56 lines
1.5 KiB
Python
import cv2
|
|
import numpy as np
|
|
|
|
frameWidth = 400
|
|
frameHeight = 500
|
|
cap = cv2.VideoCapture(0)
|
|
cap.set(3, frameWidth)
|
|
cap.set(4, frameHeight)
|
|
|
|
|
|
def empty(a):
|
|
pass
|
|
|
|
cv2.namedWindow("HSV")
|
|
cv2.resizeWindow("HSV", 640, 240)
|
|
cv2.createTrackbar("HUE Min", "HSV", 0, 179, empty)
|
|
cv2.createTrackbar("HUE Max", "HSV", 179, 179, empty)
|
|
cv2.createTrackbar("SAT Min", "HSV", 0, 255, empty)
|
|
cv2.createTrackbar("SAT Max", "HSV", 255, 255, empty)
|
|
cv2.createTrackbar("VALUE Min", "HSV", 0, 255, empty)
|
|
cv2.createTrackbar("VALUE Max", "HSV", 255, 255, empty)
|
|
|
|
|
|
frameCounter = 0
|
|
|
|
while True:
|
|
frameCounter +=1
|
|
if cap.get(cv2.CAP_PROP_FRAME_COUNT) ==frameCounter:
|
|
cap.set(cv2.CAP_PROP_POS_FRAMES,0)
|
|
frameCounter=0
|
|
|
|
_, img = cap.read()
|
|
imgHsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
|
|
|
|
h_min = cv2.getTrackbarPos("HUE Min", "HSV")
|
|
h_max = cv2.getTrackbarPos("HUE Max", "HSV")
|
|
s_min = cv2.getTrackbarPos("SAT Min", "HSV")
|
|
s_max = cv2.getTrackbarPos("SAT Max", "HSV")
|
|
v_min = cv2.getTrackbarPos("VALUE Min", "HSV")
|
|
v_max = cv2.getTrackbarPos("VALUE Max", "HSV")
|
|
print(h_min)
|
|
|
|
lower = np.array([h_min, s_min, v_min])
|
|
upper = np.array([h_max, s_max, v_max])
|
|
mask = cv2.inRange(imgHsv, lower, upper)
|
|
result = cv2.bitwise_and(img, img, mask=mask)
|
|
|
|
mask = cv2.cvtColor(mask, cv2.COLOR_GRAY2BGR)
|
|
hStack = np.hstack([img, mask, result])
|
|
cv2.imshow('Horizontal Stacking', hStack)
|
|
if cv2.waitKey(1) and 0xFF == ord('q'):
|
|
break
|
|
|
|
cap.release()
|
|
cv2.destroyAllWindows()
|