Entries

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
この記事に対してトラックバックを送信する(FC2ブログユーザー)
http://yahirohumpty.blog2.fc2.com/tb.php/293-27d58430

-件のトラックバック

-件のコメント

コメントの投稿

投稿フォーム
投稿した内容は管理者にだけ閲覧出来ます

動かないよ!USBカメラ

cvCalcOpticalFlowPyrLKを試していて気づいたのだけど,
main関数を抜けたところでCPU食いつぶして応答不能になる.
cvCalcOpticalFlowPyrLKをコメントアウトすると問題ない.
cvCalcOpticalFlowPyrLKのせいでこうなる.
普通に動いているように見えるんだけど...

で,色々検証してみたところ,
他のマシンで同じUSBカメラを使うと普通に動いているみたい.
自分のところだけこうなる.OpenCVのcvcamを使ってもなる.

デバイスドライバのせいか?と思い,
別のUSBカメラをつないで見たら悪化した.
なんとPCが固まる,ブルースクリーンで落ちるなどの症状が.

デバイスドライバを入れなおすなどの対処を行うも
固まりはしなくなったがBSODがどうにも改善せず.
で,色々試すことにしたのだけど終電になったので中断してしまった.
のでここに覚書しておきますが,

まず前段のハングする問題と後段のBSODは別の問題である.
前段は何かが競合しているんじゃないかと思われる.これ以上はやるだけ無駄な気がする.
後段については最後に試したパターンにヒントがあったような気がする.
最後に試したのは,
解像度やフレームレートを変えるコードが入ってない状態のプログラムでは正常動作.
解像度やフレームレートを変えるコードが入っているとBSOD.

ここで気になったのは
http://masafumi.cocolog-nifty.com/masafumis_diary/2006/02/post_f735.html
に書いてある

上ので解説されているソースにはないけどVIDEOINFOHEADER構造体のAvgTimePerFrameをがフレームレート。1フレームの平均処理時間をナノ秒で指定。とりあえず、0をいれるとハードウェアが出せる最速でやってくれるっぽい。


を信じて0を入れているということ.
ものによってはうまくいかないんじゃないだろうか.
とりあえず333333=30[fps]を指定するように直しておこうか.
これでだめだとほんとにお手上げだ.
おとなしく開発環境用マシンを作り直そう.

あとついでに気になった点は,
最近のノートPCは最初からカメラが付いてたりするので
カメラ複数のときに選択できるようにしないといけない.
cvcamだとダイアログが出てくるけどあれはどうやって作るのだろうか.

(追記)
AvgTimePerFrameを直したらBSOD回避されました.
ということで,
AvgTimePerFrameに0を入れてはならない.
が正しいようです.

(さらに追記)
main関数を抜けたところでCPU食いつぶして応答不能になる症状はやっぱり改善せず.
cvCalcOpticalFlowPyrLKがやっぱりうまくいかない...

(またまた追記)
やっとわかりました.
libguide40.dllというdllがあるのですが
これがOpenCV\binの下だけでなくC:\WINDOWS\system32の下にもある.
しかし両者の容量が明らかに違う.
で,これが優先されて読み込まれていたのが問題だったらしい.

他のところで問題になるかもしれないけれど
置き換えることで全部正常に動作しました.
マシン依存だったのはこいつのせいなのね.
スポンサーサイト
この記事に対してトラックバックを送信する(FC2ブログユーザー)
http://yahirohumpty.blog2.fc2.com/tb.php/293-27d58430

0件のトラックバック

0件のコメント

コメントの投稿

投稿フォーム
投稿した内容は管理者にだけ閲覧出来ます

Appendix

プロフィール

yahirohumpty

  • Author:yahirohumpty
  • 某大学の研究員です.
    博士号持ってます.
    ビジョンとロボットが専門.
    その他もろもろのことに興味があります.

ブロとも申請フォーム

この人とブロともになる

ブログ内検索

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。