Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit b51057e

Browse files
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)

AltStyle によって変換されたページ (->オリジナル) /