-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathHSVtrackBar.py
More file actions
91 lines (80 loc) · 2.16 KB
/
Copy pathHSVtrackBar.py
File metadata and controls
91 lines (80 loc) · 2.16 KB
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
88
89
90
import cv2
from picamera2 import Picamera2
import numpy as np
import time
#do not touch this, needed for 64bit
#Picamera2 library handles the camera
picam2 = Picamera2()
picam2.preview_configuration.main.size = (920,720)
picam2.preview_configuration.main.format = "RGB888"
picam2.preview_configuration.controls.FrameRate = 60
picam2.preview_configuration.align()
picam2.configure("preview")
picam2.start()
#FUNCTIONS
hLow = 0
hHigh = 1
sLow = 0
sHigh = 1
vLow = 0
vHigh = 1
def trackHue(val):
global hLow
hLow = val
def trackSat(val):
global sLow
sLow = val
def trackVal(val):
global vLow
vLow = val
def trackHhigh(val):
global hHigh
hHigh = val
def trackShigh(val):
global sHigh
sHigh = val
def trackVhigh(val):
global vHigh
vHigh = val
fps = 0
t2 = 0
pos = (30,60)
title = "HSV Track Bar"
cv2.namedWindow(title)
cv2.createTrackbar("Hue low",title,0,179,trackHue)
cv2.createTrackbar("Hue high",title,0,180,trackHhigh)
cv2.createTrackbar("Sat low",title,0,255,trackSat)
cv2.createTrackbar("Sat high",title,0,255,trackShigh)
cv2.createTrackbar("Val low",title,0,255,trackVal)
cv2.createTrackbar("Val high",title,0,255,trackVhigh)
while True:
t1 = time.time()
im = picam2.capture_array() #grab a frame
#### To Do ....... #########
cv2.putText(im,"fps: "+str(int(fps)),pos,cv2.FONT_HERSHEY_SIMPLEX,1.5,(0,0,255),3)
#cv2.circle(im,(440,350),100,rColor,2)
lowBound = np.array([hLow,sLow,vLow])
highBound = np.array([hHigh,sHigh,vHigh])
imHSV = cv2.cvtColor(im,cv2.COLOR_BGR2HSV)
mask = cv2.inRange(imHSV,lowBound,highBound)
smask = cv2.resize(mask,(720,520))
objOfInterest = cv2.bitwise_and(im,im,mask=mask)
obj = cv2.resize(objOfInterest, (520,420))
#print(hLow ," ",hHigh)
#### END
cv2.imshow("Camera", im)
cv2.imshow("mask",smask)
cv2.imshow("OBJ",obj)
t2 = time.time()
diff = t2-t1
fps = 0.9*fps + 0.1*(1/diff)
key = cv2.waitKey(1) #wait for user input
if key==ord('q'):
break
elif key == ord('s'):
cv2.imwrite("cap1.jpg",im)
print("image saved")
break
picam2.stop()
picam2.close()
cv2.destroyAllWindows()