自分用に実験課題中の表情反応を撮影するためだけの記事を書くぞ!
ここでは映像を見てる時の表情反応を撮影するやつを書くぞ!
PsychopyのBuilderでまずMovieを提示するプログラムをひょひょい~と作る。
「あとは表情撮影するやつ挟むだけ」っていうのができたら、「実験をコンパイルしてPythonスクリプトを作成します」ボタンをクリックしてあっというまに実験用Pythonスクリプトができる。
コード撮影に関する情報をガンガン書き込む
最初の部分で、CV2を読み込む。
import cv2
撮影を行うためのRoutine(# —–Prepare to start Routine “hogehoge” ——あたり)で以下のようにcv2でmp4を撮影するためのコードをかきかきする。
※ここのStimはLoop指定の刺激名をとってきてるだけ。
writer = cv2.VideoWriter(_thisDir + os.sep + u'data/%s_%s_%s' % (expInfo['participant'], Stim[6:9], '.mp4'),
cv2.VideoWriter_fourcc('m', 'p', '4', 'v'), 30, (640,480))
capture = cv2.VideoCapture(0)
実験中断用に# check for quitのところでCaptureを解放させておく。
capture.release()
ほんで # refresh the screen の箇所 (win.flip()) でひたすら以下のIf文をぶん回す。
if continueRoutine: # don't flip if this routine is over or we'll get a blank screen
retval, image = capture.read()
if retval:
reversed = image[:,::-1,:] # 左右反転
writer.write(reversed) # 動画として書き出し
win.flip()
最後に # ——-Ending Routine “Stim”——-のmovie.stop()の直前でcapture.release()をぶち込む。
多分これでおk。ただ上のやり方だとばちくそ遅延が生じてうまくできないので最適なやり方ではない。よりイイ感じのやり方募集中。