2012年11月17日土曜日

opencvでAi-Ball(小型WiFiカメラ)を使う

わかってしまえば簡単だが、わからないと一生わからない気がするのでメモ

※重要※ 
今回のコードによって発生した問題につきましては一切の責任を負いかねますのでご注意の上ご利用ください(トリセツとかに載っていない使い方の為)。

今回(3週間くらい前だが)は、Ai-Ball(公式サイト?)をopwncvで普通に使う方法をメモっておきます。

主な参考資料
・Ai-Ballの取説
・海外の質問掲示板(ここの情報がメインだが、場所を失念)
・九州工業大学 宮本研究室HP様(ttp://www.brain.kyutech.ac.jp/~miyamo/index.php/)

要約
c++:

VideoCapture cap("http://(Ai-BallのIPアドレス)/?action=stream.mjpeg");


python:

capture=cv.CaptureFromFile("http://(Ai-BallのIPアドレス)/?action=stream.mjpeg")

↑ちなみに普通のwebカメラだと
capture = cv.CaptureFromCAM(0)  pythonでは微妙に使う関数が違うので注意

それぞれのカメラ動画使うサンプル見ればわかると思いますけど、変化点は↑だけです。

なかなか分からなかったのがアドレスの最後の「.mjpeg」の部分(どこかの海外掲示板の丸パクリ、もうどうやって検索したのか思い出せない)。

 こうすることでリアルタイム(うちのPCでは18fpsくらいしか出ないが)で普通のウェブカメラとして使えます。
ちなみに宮本研究室さんの公開されているプログラムは動画(mjpeg)としてではなくスナップショット(jpg)として画像を取り込んでいるためfpsが落ちます(環境により異なると思いますが筆者環境では4fpsくらい)




 今現在(2012年11月)、使いやすそうな小型無線カメラもあんまりないし、もしかしたらこの情報が役に立つ人がいるといいな・・・と思いつつ終了。




0 件のコメント:

コメントを投稿