Merge branch 'master' of git.xpub.nl:/var/www/git.xpub.nl/repos/tgc3
commit
3a0855b8cf
Binary file not shown.
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 89 KiB |
Binary file not shown.
After Width: | Height: | Size: 20 KiB |
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
Binary file not shown.
Before Width: | Height: | Size: 499 KiB |
Binary file not shown.
Before Width: | Height: | Size: 99 KiB |
Binary file not shown.
After Width: | Height: | Size: 1.2 MiB |
@ -1,17 +0,0 @@
|
|||||||
#! /usr/bin/env python
|
|
||||||
import subprocess
|
|
||||||
from time import sleep
|
|
||||||
|
|
||||||
# requires: espeak to be installed
|
|
||||||
|
|
||||||
waittimes = [1,2,1,4,1,4,1,4,1,4]
|
|
||||||
|
|
||||||
f=open("instructions.txt","r")
|
|
||||||
txt=f.readlines()
|
|
||||||
|
|
||||||
for i, line in enumerate(txt):
|
|
||||||
waittime = waittimes[i]
|
|
||||||
print i, waittime #, line,
|
|
||||||
subprocess.call(["espeak", line, "-v", "en"]) # character speaks: his/her line
|
|
||||||
sleep(waittime) # make pause after each text line
|
|
||||||
|
|
@ -0,0 +1,73 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
from __future__ import print_function
|
||||||
|
import cv2, os, sys, time
|
||||||
|
import numpy as np
|
||||||
|
from argparse import ArgumentParser
|
||||||
|
|
||||||
|
|
||||||
|
p = ArgumentParser("")
|
||||||
|
p.add_argument("--video", type=int, default=0, help="video, default: 0")
|
||||||
|
p.add_argument("--output", default=None, help="path to save movie, default: None (show live)")
|
||||||
|
p.add_argument("--width", type=int, default=640, help="pre-detect resize width")
|
||||||
|
p.add_argument("--height", type=int, default=480, help="pre-detect resize height")
|
||||||
|
p.add_argument("--fourcc", default="XVID", help="MJPG,mp4v,XVID")
|
||||||
|
p.add_argument("--framerate", type=float, default=25, help="output frame rate")
|
||||||
|
p.add_argument("--show", default=False, action="store_true")
|
||||||
|
p.add_argument("--frames", type=int, default=100)
|
||||||
|
args = p.parse_args()
|
||||||
|
|
||||||
|
fourcc = None
|
||||||
|
cam = cv2.VideoCapture(args.video)
|
||||||
|
cam.set(cv2.cv.CV_CAP_PROP_FRAME_WIDTH, args.width)
|
||||||
|
cam.set(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT, args.height)
|
||||||
|
|
||||||
|
if args.output:
|
||||||
|
try:
|
||||||
|
fourcc = cv2.cv.CV_FOURCC(*args.fourcc)
|
||||||
|
except AttributeError:
|
||||||
|
fourcc = cv2.VideoWriter_fourcc(*args.fourcc)
|
||||||
|
out = cv2.VideoWriter()
|
||||||
|
out.open(args.output, fourcc, args.framerate, (args.width, args.height))
|
||||||
|
else:
|
||||||
|
out = None
|
||||||
|
|
||||||
|
while True:
|
||||||
|
ret, prev = cam.read()
|
||||||
|
prevgray = cv2.cvtColor(prev, cv2.COLOR_BGR2GRAY)
|
||||||
|
if prevgray.shape == (args.height, args.width):
|
||||||
|
break
|
||||||
|
|
||||||
|
count = 0
|
||||||
|
try:
|
||||||
|
while True:
|
||||||
|
ret, frame = cam.read()
|
||||||
|
|
||||||
|
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
|
||||||
|
ret, t= cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
|
||||||
|
frame = cv2.cvtColor(t, cv2.COLOR_GRAY2BGR)
|
||||||
|
# flow = cv2.calcOpticalFlowFarneback(prevgray, gray, 0.5, 3, 15, 3, 5, 1.2, 0)
|
||||||
|
# prevgray = gray
|
||||||
|
|
||||||
|
if out != None:
|
||||||
|
out.write(frame)
|
||||||
|
count += 1
|
||||||
|
if args.show:
|
||||||
|
cv2.imshow('display', frame)
|
||||||
|
if cv2.waitKey(5) & 0xFF == ord('q'):
|
||||||
|
break
|
||||||
|
if args.frames != None:
|
||||||
|
if (count >= args.frames):
|
||||||
|
break
|
||||||
|
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
pass
|
||||||
|
|
||||||
|
print ("\nCleaning up... Wrote", count, "frames")
|
||||||
|
if out:
|
||||||
|
out.release()
|
||||||
|
if args.show:
|
||||||
|
cv2.destroyAllWindows()
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,95 +1,53 @@
|
|||||||
|
v=-v en-gb+f5 -s 150
|
||||||
|
espeak "Tetra Gamma Gait Analysis " -v en-gb +f5 -s 150
|
||||||
|
sleep 1
|
||||||
|
|
||||||
espeak "Gait analysis number one." -v en
|
espeak "Be ready for the security check." -v en-gb+f4 -s 150
|
||||||
sleep 1
|
sleep 1
|
||||||
|
|
||||||
espeak "Please state your name:" -v en
|
espeak "Please state your name:" -v en+f4 -s 150
|
||||||
sleep 1
|
sleep 1
|
||||||
|
|
||||||
espeak "Position yourself 2 to 3 meters away from the Tetra Gamma Circulaire." -v en
|
espeak "Position yourself 2 to 3 meters away from me." -v en-gb+f4 -s 150
|
||||||
sleep 2
|
sleep 2
|
||||||
|
|
||||||
espeak "Walk towards the Tetra Gamma Circulaire in a straight line ." -v en
|
espeak "Walk towards me in a straight line ." -v en+f4 -s 150
|
||||||
sleep 0.2
|
sleep 0.2
|
||||||
|
|
||||||
play sweep_up.wav
|
mpv sweep_up.wav
|
||||||
|
|
||||||
basename=clips/$(date +%Y-%m-%d-%H-%M-%S)
|
basename=clips/$(date +%Y-%m-%d-%H-%M-%S)
|
||||||
echo recording $basename.avi...
|
echo recording $basename.avi...
|
||||||
scripts/black2.py --output $basename.avi --frames 50 --framerate 4 --width 320 --height 240
|
python scripts/recordwalk.py --output $basename.avi --frames 50 --framerate 4 --width 320 --height 240
|
||||||
# convert to mp4
|
# convert to mp4
|
||||||
ffmpeg -i $basename.avi -y $basename.mp4
|
ffmpeg -i $basename.avi -y $basename.mp4
|
||||||
# make a thumnail image
|
# make a thumnail image
|
||||||
ffmpeg -i $basename.avi -vframes 1 -ss 0.5 -y $basename.jpg
|
ffmpeg -i $basename.avi -vframes 1 -ss 0.5 -y $basename.jpg
|
||||||
# rm $basename.avi
|
# rm $basename.avi
|
||||||
|
|
||||||
play sweep_up.wav
|
mpv sweep_up.wav
|
||||||
|
|
||||||
espeak "Position yourself one meter away to the left of the Tetra Gamma Circulaire." -v en
|
|
||||||
sleep 1
|
|
||||||
|
|
||||||
espeak "Walk from left to right in front of the Tetra Gamma Circulaire.
|
espeak "Walk towards me on a zig zag line.
|
||||||
" -v en
|
" -v en+f4 -s175
|
||||||
sleep 0.2
|
sleep 0.2
|
||||||
|
|
||||||
play sweep_up.wav
|
mpv sweep_up.wav
|
||||||
|
|
||||||
basename=clips/$(date +%Y-%m-%d-%H-%M-%S)
|
basename=clips/$(date +%Y-%m-%d-%H-%M-%S)
|
||||||
echo recording $basename.avi...
|
echo recording $basename.avi...
|
||||||
scripts/black2.py --output $basename.avi --frames 50 --framerate 4 --width 320 --height 240
|
python scripts/recordwalk.py --output $basename.avi --frames 50 --framerate 4 --width 320 --height 240
|
||||||
# convert to mp4
|
# convert to mp4
|
||||||
ffmpeg -i $basename.avi -y $basename.mp4
|
ffmpeg -i $basename.avi -y $basename.mp4
|
||||||
# make a thumnail image
|
# make a thumnail image
|
||||||
ffmpeg -i $basename.avi -vframes 1 -ss 0.5 -y $basename.jpg
|
ffmpeg -i $basename.avi -vframes 1 -ss 0.5 -y $basename.jpg
|
||||||
# rm $basename.avi
|
# rm $basename.avi
|
||||||
|
|
||||||
play sweep_up.wav
|
mpv sweep_up.wav
|
||||||
|
|
||||||
espeak "Turn your back to the Tetra Gamma Circulaire." -v en
|
|
||||||
sleep 1
|
|
||||||
|
|
||||||
espeak "Walk away from the Tetra Gamma Circulaire.
|
|
||||||
" -v en
|
|
||||||
sleep 0.2
|
|
||||||
|
|
||||||
play sweep_up.wav
|
|
||||||
|
|
||||||
basename=clips/$(date +%Y-%m-%d-%H-%M-%S)
|
|
||||||
echo recording $basename.avi...
|
|
||||||
scripts/black2.py --output $basename.avi --frames 50 --framerate 4 --width 320 --height 240
|
|
||||||
# convert to mp4
|
|
||||||
ffmpeg -i $basename.avi -y $basename.mp4
|
|
||||||
# make a thumnail image
|
|
||||||
ffmpeg -i $basename.avi -vframes 1 -ss 0.5 -y $basename.jpg
|
|
||||||
# rm $basename.avi
|
|
||||||
|
|
||||||
play sweep_up.wav
|
espeak "Thank you for your cooperation" -v en+f4 -s175
|
||||||
espeak "Position yourself 2 to 3 meters away from the Tetra Gamma Circulaire." -v en
|
|
||||||
sleep 1
|
sleep 1
|
||||||
|
|
||||||
espeak "Walk towards the Tetra Gamma Circulaire on a zig zag line.
|
mpv sweep_up.wav
|
||||||
" -v en
|
|
||||||
sleep 0.2
|
|
||||||
|
|
||||||
play sweep_up.wav
|
|
||||||
|
|
||||||
basename=clips/$(date +%Y-%m-%d-%H-%M-%S)
|
|
||||||
echo recording $basename.avi...
|
|
||||||
scripts/black2.py --output $basename.avi --frames 50 --framerate 4 --width 320 --height 240
|
|
||||||
# convert to mp4
|
|
||||||
ffmpeg -i $basename.avi -y $basename.mp4
|
|
||||||
# make a thumnail image
|
|
||||||
ffmpeg -i $basename.avi -vframes 1 -ss 0.5 -y $basename.jpg
|
|
||||||
# rm $basename.avi
|
|
||||||
|
|
||||||
play sweep_up.wav
|
|
||||||
|
|
||||||
# subprocess.call(["espeak", "Please state your name:", "-v", "en"])
|
|
||||||
# sleep(2)
|
|
||||||
# Position yourself 2 to 3 meters away from the Tetra Gamma Circulaire.
|
|
||||||
# Walk towards the Tetra Gamma Circulaire in a straight line .
|
|
||||||
# Position yourself one meter away to the left of the Tetra Gamma Circulaire.
|
|
||||||
# Walk from left to right in front of the Tetra Gamma Circulaire.
|
|
||||||
# Turn your back to the Tetra Gamma Circulaire.
|
|
||||||
# Walk away from the Tetra Gamma Circulaire.
|
|
||||||
# Position yourself 2 to 3 meters away from the Tetra Gamma Circulaire.
|
|
||||||
# Wal
|
|
@ -0,0 +1,104 @@
|
|||||||
|
@font-face: {
|
||||||
|
font-family: "sporting_grotesque_gras-webfont";
|
||||||
|
src:"../fonts/sporting_grotesque_normal.otf";
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
background-image: url("../images/background.png");
|
||||||
|
background-repeat: repeat;
|
||||||
|
font-family: "Sporting Grotesque";
|
||||||
|
}
|
||||||
|
|
||||||
|
#wrapper {
|
||||||
|
max-width: 900px;
|
||||||
|
display: block;
|
||||||
|
margin: 0px auto;
|
||||||
|
padding:0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
header img{
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.movies img:nth-child(1) {
|
||||||
|
margin-top: 150px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.movies img {
|
||||||
|
display: block;
|
||||||
|
width: 632px;
|
||||||
|
height: auto;
|
||||||
|
margin: 25px auto;
|
||||||
|
box-shadow: 0px 0px 64px 13px rgba(255,255,255,1);
|
||||||
|
}
|
||||||
|
|
||||||
|
div.movies p {
|
||||||
|
color: white;
|
||||||
|
text-align: center;
|
||||||
|
font-family: "Sporting Grotesque";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
div.firstline, div.secondline, div.thirdline {
|
||||||
|
|
||||||
|
max-width: 100%;
|
||||||
|
border: 10px solid white;
|
||||||
|
padding-top: 3px;
|
||||||
|
padding-bottom: 3px;
|
||||||
|
padding-left: 50px;
|
||||||
|
padding-right: 50px;
|
||||||
|
margin: 37px 15px 37px !important;
|
||||||
|
font-size: 200%;
|
||||||
|
color: white;
|
||||||
|
text-align: center;
|
||||||
|
text-shadow: 1px 1px 2px white;
|
||||||
|
line-height:110%;
|
||||||
|
margin: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*div.secondline {
|
||||||
|
width: 80%;
|
||||||
|
border: 10px solid white;
|
||||||
|
padding-top: 3px;
|
||||||
|
padding-bottom: 3px;
|
||||||
|
padding-left: 50px;
|
||||||
|
padding-right: 50px;
|
||||||
|
margin:25px;
|
||||||
|
font-size: 200%;
|
||||||
|
color: white;
|
||||||
|
text-align: center;
|
||||||
|
text-shadow: 1px 1px 2px white;
|
||||||
|
line-height:110%;
|
||||||
|
margin: auto;
|
||||||
|
margin-top:17px;
|
||||||
|
margin-bottom:17px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.thirdline {
|
||||||
|
width: 80%;
|
||||||
|
border: 10px solid white;
|
||||||
|
padding-top: 3px;
|
||||||
|
padding-bottom: 3px;
|
||||||
|
padding-left: 50px;
|
||||||
|
padding-right: 50px;
|
||||||
|
margin: 25px;
|
||||||
|
font-size: 200%;
|
||||||
|
color: white;
|
||||||
|
text-align: center;
|
||||||
|
text-shadow: 1px 1px 2px white;
|
||||||
|
line-height:110%;
|
||||||
|
margin: auto;
|
||||||
|
}*/
|
||||||
|
|
||||||
|
div.cover {
|
||||||
|
float: center;
|
||||||
|
margin: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
img {
|
||||||
|
display: block;
|
||||||
|
margin: auto;
|
||||||
|
max-width: 900px;
|
||||||
|
border: 10px solid white;
|
||||||
|
}
|
Loading…
Reference in New Issue