SSブログ

愚痴 [プログラミング]

Cugwinのg++とVideo For Windowを使って、ステレオでキャプチャーするプログラムを作った。
1)開始→
2) capGrabFrame()×2→
3)  capFrameCallback()が2つ来るのを待つ→
4)   2つの画像のズレを計算する→
5)    位置を合わせて推定左を赤でマスク、推定右をシアンでマスク→
6)     画像を表示する→
7)       2)へ戻る
をという物だったが、数フレーム/秒ぐらいしか出ない。
高速化するには、4)の処理をなんとかするべきなのだが、
画サイズを変えても大差が無いので、2)→3)の間が遅いようだった。
そこで、Captureデータを自動で投げて貰う為に、
capCaptureSequenceNoFile();
と、
capVideoStreamCallback()
で、取り込もうとしたが、1回目の
capVideoStreamCallback()
が終わった後に、「バンドルされていない例外が発生しました」になる。
「ファイルが無いのに書き込みに行っているのかな?」っとも思い、
capCaptureSequence();の方にして書き込むようにしてみるても、同じ。
分かった事は書き込んだ後に発生している事だけ。
どちらも、capVideoStreamCallback()を呼ばないようにすれば、正常に動作する。
VC++ Express
を入れて、どの辺りで例外が発生しているのか見ようとしたら、
capDriverConnect()で失敗するようになりやがる。
デバッガ有りだと失敗して、デバッガ無しだと成功する最低な状態。

プレビュー有りで、プレビューウィンドウがあると、
capCaptureSequenceNoFile()
で、
capFrameCallback()
が自動で来るが、何故か、プレビュウウィンドウが表示されていないと来ない。
これも、理由が分からない。が、まぁ、それはそういう仕様なのだろう。

う~っ頭いてぇ~


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

過去の失敗暦その他ネタ愚痴解決 ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。