Skip to content

Commit b51057e

Browse files
committed
added requests to the smart music player
1 parent c467c33 commit b51057e

File tree

1 file changed

+32
-5
lines changed

1 file changed

+32
-5
lines changed

new.py

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22
import numpy as np
33
import copy
44
import math
5+
import time
6+
from picamera import PiCamera
7+
from picamera.array import PiRGBArray
8+
import requests
59
#from appscript import app
610

711
# Environment:
@@ -61,14 +65,25 @@ def calculateFingers(res,drawing): # -> finished bool, cnt: finger count
6165

6266

6367
# Camera
64-
camera = cv2.VideoCapture(0)
65-
camera.set(10,200)
68+
# camera = cv2.VideoCapture(0)
69+
# camera.set(10,200)
70+
FRAME_THRESHOLD = 5
6671
cv2.namedWindow('trackbar')
6772
cv2.createTrackbar('trh1', 'trackbar', threshold, 100, printThreshold)
6873

69-
70-
while camera.isOpened():
71-
ret, frame = camera.read()
74+
camera = PiCamera()
75+
camera.resolution = (640, 480)
76+
camera.framerate = 32
77+
rawCapture = PiRGBArray(camera, size=(640, 480))
78+
time.sleep(0.1)
79+
80+
session = requests.session()
81+
fcnt = 0
82+
last_cnt = -1
83+
for frame in camera.capture_continuous(rawCapture, format='bgr', use_video_port=True):
84+
# ret, frame = camera.read()
85+
frame = frame.array
86+
rawCapture.truncate(0)
7287
threshold = cv2.getTrackbarPos('trh1', 'trackbar')
7388
frame = cv2.bilateralFilter(frame, 5, 50, 100) # smoothing filter
7489
frame = cv2.flip(frame, 1) # flip the frame horizontally
@@ -111,10 +126,21 @@ def calculateFingers(res,drawing): # -> finished bool, cnt: finger count
111126
cv2.drawContours(drawing, [hull], 0, (0, 0, 255), 3)
112127

113128
isFinishCal,cnt = calculateFingers(res,drawing)
129+
if(isFinishCal and cnt == last_cnt):
130+
fcnt+=1
131+
if(fcnt>=FRAME_THRESHOLD):
132+
fcnt=0
133+
action_dictionary = {1: 'toggle_play', 2: 'stop', 3: 'next_track'}
134+
action = action_dictionary.get(cnt, 'toggle_play')
135+
print("{} emitted".format(action))
136+
session.get('http://0.0.0.0:8080/{}'.format(action))
137+
else:
138+
fcnt=0
114139
if triggerSwitch is True:
115140
if isFinishCal is True and cnt <= 2:
116141
print (cnt)
117142
#app('System Events').keystroke(' ') # simulate pressing blank space
143+
last_cnt = cnt
118144

119145

120146
cv2.imshow('output', drawing)
@@ -123,6 +149,7 @@ def calculateFingers(res,drawing): # -> finished bool, cnt: finger count
123149
k = cv2.waitKey(10)
124150
if k == 27: # press ESC to exit
125151
camera.release()
152+
camera.close()
126153
cv2.destroyAllWindows()
127154
break
128155
elif k == ord('b'): # press 'b' to capture the background

0 commit comments

Comments
 (0)