• 締切済み

USBカメラ画像の表示が不安定

リナックス環境 ・Fedora Core 1 Kernel 2.4.22 ・RT-Linux 3.2 pre3 Kernel 2.4.22 USBカメラ ・Qcam Pro 4000 USBカメラから画像を取得して表示するプログラムを作成しています。 ドライバをインストールし、下のコマンドで正常に画像が表示されます。 xawtv -c /dev/video0 作成中のプログラムでは、ウィンドウにカメラ画像を表示し、25ms毎にその画像を更新しています。ウィンドウの作成、画像の表示にはOpenCVを用いています。 このプログラムを起動すると始めのうちは正常に画像が更新されているのですが、あるときを境に表示が乱れ始めます(ブロックノイズが多発する、点滅する、真っ黒になる)。いったん乱れ始めるとプログラムを再起動したとしても症状が直ることはありません。また、この症状が発生するとOSが極端に不安定になり、今までに以下のようなフリーズが発生しています(ほとんどが1のようなフリーズで、2のフリーズは先日初めて発生しました)。 1.マウスもキーボードも応答しなくなる(マウスカーソルも動かない) 2.突然黒い画面になり「usb-uhci.c: interrupt, status 2, frame #1779」と表示される 不思議な事に、この症状が発生中にxawtvコマンドを用いて画像を表示すると乱れる事は一切ありません。自作のプログラムを経由して画像を表示すると乱れてしまうのです。また、どうやら画像自体は正常に取得できているようで(OpenCVによる画像処理は上手くいっている)、「プログラム」から画像を「表示」することに問題があるようです。 症状の特徴としては、CPUに負荷がかかったときに画像が乱れるようです。マウスをそっとしておくよりも、マウスを速く動かしているときの方が激しく乱れます。また、この症状はプログラムを動かしているときに急に発生するのですが、全く発生しない日もあり(それがまた原因が特定しにくい)、プログラムが完全に悪いというわけでもないようなのです。 始めはグラフィックボードの故障を疑いましたが、交換しても症状は直りませんでした。 当方Linuxの知識に乏しく、インターネットで情報を集めできる限りのことはしたつもりなのですが、もうなす術がなく途方に暮れているところです。近くに相談できる人もおらず、最後の望みとしてここで質問させて頂く事にしました。 もし何かお気づきの点がありましたらアドバイスして頂けると非常に助かります。 よろしくお願い致します。 長文失礼しました。

みんなの回答

  • kusa_mochi
  • ベストアンサー率76% (1599/2089)
回答No.1

自分はLinux上でプログラムは組んだ事は無いが、多少なりとも参考になれば。 まず、  ・OSが不安定になる  ・usb-uhci.cという文字列が出てきた(USBのドライバのようです) という症状から、USBのドライバ側で何らかの異常が起きている可能性があると思います。 可能性を考えるなら、  ・USBドライバの使い方(ライブラリ経由だと思いますが)がおかしいせいで、USBドライバの動作不安定を招いている  ・USBドライバ側にバグがあり、それを叩き出してしまっている でしょうか。 上側の例としては、TCP/IPでいう所のsocketをクローズせずに次から次へと新規にオープンしっぱなしでOSの持つリソースを使い尽くしたようなケース (USBを扱った経験が無いのでTCP/IPの例で申し訳ないのですが)とか。 一度USB周りのプログラミングが、規約に則って行なわれているかチェックしてみるとか、戻り値が異常になっているかどうかチェックするロジックを追加して、万一おかしい場合はコンソールに出力するようにしてみてはどうでしょうか。 (USB周りのライブラリ関数の戻り値をちゃんとチェックしていますか?100%正常な値が帰って来ると言う思い込みで、チェックをスルーしていませんか?)  

puni102
質問者

お礼

結局、 RT-Linux + SMTP(マルチプロセッサ) という環境がいけなかったようです。 どうやらRT-Linuxはマルチプロセッサ関連の不具合が多いらしいです。 真剣に考えて頂いてありがとうございました。 また、返事が大変遅れてしまい申し訳ありませんでした。

関連するQ&A

  • openCVのキャプチャ動作が安定しません

    openCVを利用してカメラから画像キャプチャ→avi書き込みをしています。 キャプチャを5分以上続けているとフリーズしそうになったり、 フリーズしたりと動作が安定しません。 そのため、ファイル書き込みもうまく保存されないときがあります。 どのようにすれば安定するのでしょうか。 またはOpenCV以外を探すべきなのでしょうか。 プログラムのソースはhttp://opencv.jp/sample/video_io.htmlを参考にしています。

  • デジタルカメラの画像をUSBで取り込むとフリーズする。

    デジタルカメラの画像をUSBで取り込むとよくフリーズします。 デジタルカメラはFinePix4500です。OSは98SEです。 よくフリーズするので、取り込んだ後いったん終了させ再起動します。 相性の問題でしょうか。

  • opencvを用いて画像を表示したいです(初心者です)

    こんばんは。 opencvを用いて画像処理をしようと思っているのですが、下のページの通りにプロジェクトを作成し、ビルドを行ったのですが、 http://www.saturn.dti.ne.jp/~npaka/robot/opencv/index.html 「cxcore100.dllが見つからなかったため、このアプリケーションを開始できませんでした。」 という表示が出てしまいます。cxcore100.dllは C:\Program Files\OpenCV\bin←この中に見つけたのですが、どうしていいかわかりません。 どなたか、おわかりになる方ご教授願えないでしょうか?

  • USBカメラに付いているスイッチの状態を入力したい

    USBカメラからの画像を入力するプログラムを作成しています。 このプログラムにおいて、USBカメラに付いているスイッチのON/OFFの状態を入力したいのですが、方法がわかりません。どなたかご存知であれば、教えて頂きたいのですが。 ちなみに環境はWindows XP SP2でVisual Stadio 2005でC++で作成しています。また、画像の入力、表示用に以下のSDKを使用しています。 Direct X SDK(August 2007) Platform SDK for Windows Server 2003 SP1

  • USBカメラ

    USBカメラの制御ソフトをVB6で作りたいと考えています。 まだ、調べはじめなのですが、USB Video Device Class(UVD)のカメラをプログラム側から、撮影、画像の取り込みを行う際にどのようなプログラムを書けば(何を調べれば)よいのでしょうか? このAPIが使えるとか・・・ ちなみに撮影は、動画ではなく静止画です。 ご教授よろしくお願いします。

  • OpenCV webカメラ歪み補正

    こちらのHP(http://opencv.jp/sample/camera_calibration.html)の上から二番目の「キャリブレーションデータを利用して,歪みを補正する」プログラムがうまくいきません。 opencv - Microsoft Visual Studio 2005でデバッグをしたのですが、何も起こりませんでした。エラーも表示されないので行き詰ってしまいました。 以前質問したときに、「補正対象画像をコマンドライン引数で指定するプログラムなのでコマンドプロンプトから実行する」と回答をいただきましたが、よくわかりませんでした。 ちなみに"camera.xml"のファイルはサイトの一番上のプログラムで作成済みです。 この症状で考えられる原因はなんでしょうか? 回答よろしくお願いします。

  • webカメラの画像が赤緑がかっている

    ELECOMのwebカメラを買いました。 skypeで画像の確認をしたのですが、画像が赤緑がかっています。 ELECOMサポートセンターに聞いたところ カメラ自体の不具合でそういう事象が発生することがあるため カメラを交換してもらいました。 早速交換してみたのですが、症状は変わりません。 気になるのはskypeにつないだときに相手のPCには正常な画像が送られています。 ということは、 カメラの問題ではなく、PC側の設定の問題では?と思うのですが このような症状になったことがある方がいれば解決策を教えてください。 宜しくお願いします。

  • FedoraCore2のインストールでマウスが反応しません。

    実はKnoppix3.4も試してみたのですが、kernel2.6xのLinuxを使おうとするとマウスが反応しないことに気づきました。Linuxは初めてなので使いやすいものは無いかと書店で立ち読みをしていて見つけたのが上記の2つのOSなのですが、Knoppixはkernel2.4で立ち上げたところマウスが正常に動いたので何が原因なのかな?と思い投稿いたしました。ちなみにマウスもキーボードもPS2及びUSBの両方あるのですが、キーボードの方は問題無いのですがマウスがどちらも動いてくれません。どなたか知恵を貸していただけませんか?

  • USBコネクタ

    パソコンを使用中にUSBコネクタにウォークマンを接続したり、 USBケーブルでつながっているプリンターの電源を入れると パソコンの画面がフリーズしてしまいます。 キーボードを打ってもマウスを動かしても何の反応もありません。 何回やっても同じ症状が出るので、リカバリをしました。 そしてプリンターを接続して電源を入れたら、やはりパソコン画面がフリーズしました。 Windowsの常駐プログラムを停止した状態でプリンターの電源を入れても 同じ症状です。 パソコンはUSBコネクタ以外は、正常に使えます。 メールもインターネットも問題ないです。 パソコンとプリンターの製造元からは「原因がわからない」との回答をいただきました。 もうどうしたらいいのかわかりません。 これはパソコンが壊れる前の症状なのでしょうか?

  • opencvによる画像処理。

    opencvによる画像処理。 今opencvを使った画像処理をしているのですが、これって普通のプログラム中に関数みたいな感じで使う事って出来ないのでしょうか? 例えば、Cで車両を制御するプログラムを作ってる場合に、車両が何mm進んだ時点で車両に取り付けたカメラを使って、画像処理を行う。みたいな処理をしたいです。 でもopencvのmain文って、引数が二つあってそれをどう渡せばいいのかよく分かりません。 素人なので分かりずらくて申し訳ありません。