files from/for giulia
parent
ae7bae033e
commit
b978db23c9
@ -0,0 +1 @@
|
||||
FLOPPYLEFT - 2017
|
@ -0,0 +1,7 @@
|
||||
Author: Slavoj Žižek
|
||||
Date: 1989
|
||||
Title: The Sublime Object of Floppy
|
||||
|
||||
Description:
|
||||
|
||||
And so on, and so on, and so on.
|
@ -0,0 +1,50 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import cgi, jinja2, os, json, re
|
||||
import cgitb; cgitb.enable()
|
||||
from jinja2 import Template
|
||||
|
||||
# Directory => ITEMS list (all files with a timestamp name, grouped)
|
||||
ff = os.listdir(".")
|
||||
tpat = re.compile(r"^(\d\d\d\d)(\d\d)(\d\d)T(\d\d)(\d\d)(\d\d)Z")
|
||||
items = {}
|
||||
for f in ff:
|
||||
base, ext = os.path.splitext(f)
|
||||
ext = ext[1:]
|
||||
m = tpat.match(f)
|
||||
if m:
|
||||
t = m.group(0)
|
||||
if t not in items:
|
||||
items[t] = {}
|
||||
items[t][ext] = f
|
||||
|
||||
items = [items[key] for key in sorted(items, reverse=True)]
|
||||
|
||||
# # dump the data (debugging)
|
||||
# print "Content-type: text/plain"
|
||||
# print ""
|
||||
# print json.dumps(items, indent=2)
|
||||
|
||||
# Output template with items
|
||||
print "Content-type: text/html"
|
||||
print ""
|
||||
print Template(u"""<html>
|
||||
<head>
|
||||
<title>RECORD O RAMA</title>
|
||||
</head>
|
||||
<body>
|
||||
<form method="get" action="record.cgi">
|
||||
<input type="submit" value="record" />
|
||||
</form>
|
||||
|
||||
{% for i in items %}
|
||||
<a href="../{{i.mp4}}"><img src="../{{i.jpg}}" /></a>
|
||||
{% endfor %}
|
||||
|
||||
<div>
|
||||
<form method="get" action="record.cgi">
|
||||
<input type="submit" value="record" />
|
||||
</form>
|
||||
</div>
|
||||
</body>
|
||||
</html>""").render(items=items).encode("utf-8")
|
@ -0,0 +1,23 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import cgi, sys, datetime
|
||||
import cgitb; cgitb.enable()
|
||||
import subprocess
|
||||
|
||||
print "Content-type: text/html"
|
||||
print
|
||||
print "hello from python<br>"
|
||||
|
||||
n = datetime.datetime.now()
|
||||
|
||||
basename = n.strftime("%Y%m%dT%H%M%SZ")
|
||||
|
||||
o1 = subprocess.check_output(["scripts/simplerecord.py", "--output", basename+".avi", "--time", "5"])
|
||||
print o1 + "<br>\n"
|
||||
o2 = subprocess.check_output(["ffmpeg", "-i", basename+".avi", "-y", basename+".mp4"])
|
||||
print o2 + "<br>\n"
|
||||
o2 = subprocess.check_output(["ffmpeg", "-i", basename+".avi", "-ss", "1", "-vframes", "1", "-y", basename+".jpg"])
|
||||
print o2 + "<br>\n"
|
||||
|
||||
# print """<a href=\"../{0}.mp4\">VIDEO</a>""".format(basename)
|
||||
print """<a href="index.cgi">OK</a>"""
|
@ -0,0 +1,11 @@
|
||||
Gait analysis number one.
|
||||
Please state your name:
|
||||
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.
|
||||
Walk towards the Tetra Gamma Circulaire on a zig zag line.
|
||||
|
@ -0,0 +1,12 @@
|
||||
#N canvas 296 315 450 300 10;
|
||||
#X obj 37 104 osc~ 440;
|
||||
#X obj 37 146 dac~;
|
||||
#X obj 161 74 loadbang;
|
||||
#X msg 161 111 \; pd dsp 1;
|
||||
#X obj 37 36 netreceive 3000;
|
||||
#X obj 46 62 print;
|
||||
#X connect 0 0 1 0;
|
||||
#X connect 0 0 1 1;
|
||||
#X connect 2 0 3 0;
|
||||
#X connect 4 0 5 0;
|
||||
#X connect 4 0 0 0;
|
@ -0,0 +1,12 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import os, random, time
|
||||
|
||||
while True:
|
||||
freq = str(random.randint(0,10)*110)
|
||||
print(freq)
|
||||
os.system('echo "'+freq+';" | pdsend 3000')
|
||||
time.sleep(0.25)
|
||||
|
||||
|
||||
|
@ -0,0 +1 @@
|
||||
GREAT JOB!
|
@ -0,0 +1,17 @@
|
||||
#! /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,64 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import numpy as np
|
||||
import cv2
|
||||
import video
|
||||
|
||||
|
||||
def draw_flow(img, flow, step=16):
|
||||
h, w = img.shape[:2]
|
||||
y, x = np.mgrid[step/2:h:step, step/2:w:step].reshape(2,-1)
|
||||
fx, fy = flow[y,x].T
|
||||
lines = np.vstack([x, y, x+fx, y+fy]).T.reshape(-1, 2, 2)
|
||||
lines = np.int32(lines + 0.5)
|
||||
vis = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)
|
||||
|
||||
cv2.polylines(vis, lines, 0, (0, 0, 0))
|
||||
# for (x1, y1), (x2, y2) in lines:
|
||||
# cv2.circle(vis, (x1, y1), 1, (0, 255, 0), -1)
|
||||
return vis
|
||||
|
||||
def draw_hsv(flow):
|
||||
h, w = flow.shape[:2]
|
||||
fx, fy = flow[:,:,0], flow[:,:,1]
|
||||
ang = np.arctan2(fy, fx) + np.pi
|
||||
v = np.sqrt(fx*fx+fy*fy)
|
||||
|
||||
# hsv = np.zeros((h, w, 3), np.uint8)
|
||||
# hsv[...,0] = ang*(180/np.pi/2)
|
||||
# hsv[...,1] = 255
|
||||
# hsv[...,2] = np.minimum(v*4, 255)
|
||||
# bgr = cv2.cvtColor(hsv, cv2.COLOR_HSV2BGR)
|
||||
|
||||
f = np.zeros((h, w, 3), np.uint8)
|
||||
f[...,0] = 0 #np.minimum(v*10, 255)
|
||||
|
||||
f[...,1] = 0
|
||||
f[...,2] = 255- np.minimum(v**2, 255) #ang*(180/np.pi/2)
|
||||
bgr = cv2.cvtColor(f, cv2.COLOR_HSV2BGR)
|
||||
|
||||
return bgr
|
||||
|
||||
width, height = 640, 480
|
||||
cam = video.create_capture("0:size="+str(width)+"x"+str(height))
|
||||
|
||||
while True:
|
||||
ret, prev = cam.read()
|
||||
prevgray = cv2.cvtColor(prev, cv2.COLOR_BGR2GRAY)
|
||||
if prevgray.shape == (height, width):
|
||||
break
|
||||
|
||||
while True:
|
||||
ret, img = cam.read()
|
||||
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
|
||||
print prevgray.shape, gray.shape
|
||||
flow = cv2.calcOpticalFlowFarneback(prevgray, gray, 0.5, 3, 15, 3, 5, 1.2, 0)
|
||||
prevgray = gray
|
||||
|
||||
# cv2.imshow('flow', draw_flow(gray, flow))
|
||||
cv2.imshow('flow', draw_hsv(flow))
|
||||
|
||||
ch = 0xFF & cv2.waitKey(5)
|
||||
if ch == 27:
|
||||
break
|
||||
cv2.destroyAllWindows()
|
@ -0,0 +1,93 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
from __future__ import print_function
|
||||
import cv2, os, sys, time
|
||||
import numpy as np
|
||||
from argparse import ArgumentParser
|
||||
|
||||
|
||||
def draw(flow):
|
||||
h, w = flow.shape[:2]
|
||||
fx, fy = flow[:,:,0], flow[:,:,1]
|
||||
ang = np.arctan2(fy, fx) + np.pi
|
||||
v = np.sqrt(fx*fx+fy*fy)
|
||||
|
||||
# hsv = np.zeros((h, w, 3), np.uint8)
|
||||
# hsv[...,0] = ang*(180/np.pi/2)
|
||||
# hsv[...,1] = 255
|
||||
# hsv[...,2] = np.minimum(v*4, 255)
|
||||
# bgr = cv2.cvtColor(hsv, cv2.COLOR_HSV2BGR)
|
||||
|
||||
f = np.zeros((h, w, 3), np.uint8)
|
||||
f[...,0] = 0 #np.minimum(v*10, 255)
|
||||
|
||||
f[...,1] = 0
|
||||
f[...,2] = 255- np.minimum(v**2, 255) #ang*(180/np.pi/2)
|
||||
bgr = cv2.cvtColor(f, cv2.COLOR_HSV2BGR)
|
||||
|
||||
return bgr
|
||||
|
||||
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("--time", type=float, default=None)
|
||||
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
|
||||
|
||||
try:
|
||||
if args.time != None:
|
||||
start = time.time()
|
||||
while True:
|
||||
ret, frame = cam.read()
|
||||
|
||||
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
|
||||
flow = cv2.calcOpticalFlowFarneback(prevgray, gray, 0.5, 3, 15, 3, 5, 1.2, 0)
|
||||
prevgray = gray
|
||||
frame = draw(flow)
|
||||
|
||||
if out != None:
|
||||
out.write(frame)
|
||||
if args.show:
|
||||
cv2.imshow('display', frame)
|
||||
if cv2.waitKey(5) & 0xFF == ord('q'):
|
||||
break
|
||||
if args.time != None:
|
||||
elapsed = time.time() - start
|
||||
if (elapsed >= args.time):
|
||||
break
|
||||
except KeyboardInterrupt:
|
||||
pass
|
||||
|
||||
print ("\nCleaning up...")
|
||||
if out:
|
||||
out.release()
|
||||
if args.show:
|
||||
cv2.destroyAllWindows()
|
||||
|
||||
|
||||
|
@ -0,0 +1,68 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
from __future__ import print_function
|
||||
import cv2, os, sys, time
|
||||
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("--time", type=float, default=None)
|
||||
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
|
||||
|
||||
try:
|
||||
if args.time != None:
|
||||
start = time.time()
|
||||
while True:
|
||||
ret, frame = cam.read()
|
||||
if out != None:
|
||||
out.write(frame)
|
||||
if args.show:
|
||||
cv2.imshow('display', frame)
|
||||
if cv2.waitKey(5) & 0xFF == ord('q'):
|
||||
break
|
||||
if args.time != None:
|
||||
elapsed = time.time() - start
|
||||
if (elapsed >= args.time):
|
||||
break
|
||||
|
||||
except KeyboardInterrupt:
|
||||
pass
|
||||
|
||||
print ("\nCleaning up...")
|
||||
if out:
|
||||
out.release()
|
||||
if args.show:
|
||||
cv2.destroyAllWindows()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue