HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
0527
AmAmウェブカメラからのストリーミングに時間差を挿入したい4解決


AmAm

リンク

2011/5/27(Fri) 18:16:05|NO.39396

HSPを研究に使用しております(行動観察)。
PCに接続したウェブカメラからの映像をモニターに出力して使用しておりますが,
次の実験では,キャプチャから出力までの間に一定の遅延を挿入したいと思っております。
(例えば,グーとパーを繰り返したときに,モニター上ではグーをしているときにパーになるように,
うまく遅延時間をコントロールしたいのです。)

ストリーミングのループの中にウェイトを入れると擬似的にそうなりますが,
この場合はサンプリングレート自体が落ちてしまうので,
キャプチャした画像(動画?)をどこか別に保存しておいて,それを遡って再生する必要があるかと考えたのですが,
やり方分かりませんでした。

どなたか分かる方がいらっしゃれば,お力をお借りできればとても助かります。
hspcvでもHSPDSCでも,どちらでも大丈夫です。
よろしくお願い致します!



この記事に返信する


ken

リンク

2011/5/27(Fri) 22:37:58|NO.39401

>キャプチャから出力までの間に一定の遅延を挿入したいと思っております。
あまり実用的でないかもしれません。

#uselib "user32.dll" #func SetTimer "SetTimer" int,int,int,int #func KillTimer "KillTimer" int,int #define WM_TIMER 0x0113 #include "hspcv.as" screen 1 screen 0 time=2000;初期値 input time;一定時間ごとに表示 button "start",*start oncmd gosub *OnTimer, WM_TIMER onexit *exit cvbuffer 1 cvbuffer 0 stop *start setTimer hwnd, 1, time,0 cvcapture 0,0 repeat cvgetcapture cvcopy 0,0,0,1;copyをcvbuffer1に保存 gsel 0 cvgetimg 0 await 10 loop *OnTimer gsel 1 cvgetimg 1;一定時間ごとにcvbuffer1を表示 return *exit cvendcapture KillTimer hwnd, 1 end
ジャンケンならば一定時間ごとに表示よりも画像が変化したら表示の方が良いと思います。
CVmatchでなんとかなるかと・・・



ken

リンク

2011/5/27(Fri) 23:11:16|NO.39403

それともストリーミング全体を遅延させたいのですか?
それは難しい。過去撮り? 誰かたのむ。



hexa.hemi

リンク

2011/5/28(Sat) 00:00:22|NO.39404

こういうことですか?

#include "hspcv.as" waitms = 2000// 何ミリ秒遅らせるか awaitt = 150// awaitの精度 小さい方が精度がよいが、そのぶんbufferの数も増えてしまうので注意。また、小さすぎて帰って精度が悪くなることもある。50〜がおすすめ w = 640// ウィンドウの幅 h = 480// ウィンドウの高さ len = int(1.0 * waitms / awaitt) screen 0, w, h repeat len, 1 buffer cnt, w, h sec = 1.0 * ( len - cnt ) * awaitt / 1000 mes strf("あと%.02f秒待ってね", sec) mes "バッファー" + cnt + "/" + len wait 0 loop cvcapture 0, 0 onexit *exit await 1 now = 1 xnow = 0 repeat gsel xnow cvgetcapture cvgetimg 0, 0 gsel 0 gcopy now, 0, 0, w, h xnow = now + len xnow \= len now++ now \= len if now < 1 : now = 1 await awaitt loop *exit cvendcapture end



AmAm

リンク

2011/5/28(Sat) 15:46:14|NO.39410

kenさま,hexa.hemiさま,
ご回答ありがとうございました。おっしゃる通り,ストリーミング全体を遅らせたいという
ことでした。分かりにくくてすみません。

hexa.hemiさんのスクリプトで完璧でした!
映像もスムーズですし,とても助かりました。
本当にありがとうございます。

まだ理解できてない箇所もありますので,じっくり勉強させていただきます!



ONION software Copyright 1997-2023(c) All rights reserved.