-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtutorial_program.py
87 lines (67 loc) · 2.21 KB
/
tutorial_program.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
import numpy as np
import cv2
print(cv2.__version__)
def onTrack1(val):
global hueLow
hueLow = val
print('Hue Low', hueLow)
def onTrack2(val):
global hueHigh
hueHigh = val
print('Hue High', hueHigh)
def onTrack3(val):
global satLow
satLow = val
print('Sat Low', satLow)
def onTrack4(val):
global satHigh
satHigh = val
print('Sat High', satHigh)
def onTrack5(val):
global valLow
valLow = val
print('Val Low', valLow)
def onTrack6(val):
global valHigh
valHigh = val
print('Val High', valHigh)
width = 640
height = 360
cam = cv2.VideoCapture(0, cv2.CAP_DSHOW)
cam.set(cv2.CAP_PROP_FRAME_WIDTH, width)
cam.set(cv2.CAP_PROP_FRAME_HEIGHT, height)
cam.set(cv2.CAP_PROP_FPS, 30)
cam.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc(*'MJPG'))
cv2.namedWindow('myTracker')
cv2.moveWindow('myTracker', width, 0)
hueLow = 10
hueHigh = 20
satLow = 10
satHigh = 250
valLow = 10
valHigh = 250
cv2.createTrackbar('Hue Low', 'myTracker', 10, 179, onTrack1)
cv2.createTrackbar('Hue High', 'myTracker', 20, 179, onTrack2)
cv2.createTrackbar('Sat Low', 'myTracker', 10, 255, onTrack3)
cv2.createTrackbar('Sat High', 'myTracker', 250, 255, onTrack4)
cv2.createTrackbar('Val Low', 'myTracker', 10, 255, onTrack5)
cv2.createTrackbar('Val High', 'myTracker', 250, 255, onTrack6)
while True:
ignore, frame = cam.read()
frameHSV = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
lowerBound = np.array([hueLow, satLow, valLow])
upperBound = np.array([hueHigh, satHigh, valHigh])
myMask = cv2.inRange(frameHSV, lowerBound, upperBound)
#myMask = cv2.bitwise_not(myMask)
myObject = cv2.bitwise_and(frame, frame, mask = myMask)
myObjectSmall = cv2.resize(myObject, (int(width/2), int(height/2)))
cv2.imshow('My Object', myObjectSmall)
cv2.moveWindow('My Object', int(width/2), int(height))
myMaskSmall = cv2.resize(myMask, (int(width/2), int(height/2)))
cv2.imshow('My Mask', myMaskSmall)
cv2.moveWindow('My Mask', 0, height)
cv2.imshow('my WEBcam', frame)
cv2.moveWindow('my WEBcam', 0, 0)
if cv2.waitKey(1) & 0xff == ord('q'):
break
cam.release()