2007年11月8日木曜日

corega CG-WLNCMNGV2

安価な家庭用のネットワークカメラを使い
自作のJAVAプログラムで
最終的には工場内の設備の自動監視を
おこなうことを企んでいます。

そこでEthernetに接続できて
無線機能がついている物の中で一番安い
corega CG-WLNCMNGV2というカメラを
買ってきて遊んでいます。

しかし、ネットワークカメラって
画像が勝手に流れてくるような
ビデオカメラのようなものを考えていたので
JMFで
MediaLocator("vfw://0")とすれば
captureできるのかと考えていたのですが

仕様をよく読んでみると
このカメラはJPEG画像を
連続的に送っているだけのようで
残念ながらJMFではMotion-JPEGは扱えないようなので
結局、カメラ内部に保存されている
IMAGE.JPGというファイルを
ImageIOのread()メソッドを使って読むことにしました。

これで一応目的とすることは
ある程度できるようになったのですが
残念ながら 2.5fps程度が精々です。
カメラ自体は20fpsは可能なようなので
何か別の方法があると思うのですが
ちょっとうまくいきません。

あと画像処理をするには
露光を一定にできないのも少々難有りですね。

2007年10月9日火曜日

Javaでの画像取扱い: IEEE1394について

JavaでIEEE1394から取り込んだ動画を取り扱う方法がないかを調べてみました。

Javaで動画を取り扱うには、sunで配布しているJMF(Java Media Framework)というものを使います。このJMFをインストールして使えば、USBカメラなんかはデータ元に vfwを指定することで簡単に扱えるようになるのですが、IEEE1394から取り込んだ動画を同様に扱うとエラーが出ます。
どうも、IEEE1394から読み込む画像はDVSDという形式で、JMFのサポート範囲外であるためだったらしいです。
 でもなんとか読み込む方法がないかと探していたら、Windowsの場合なんかだと

「Panasonic VFW DV codec というビデオコーデックをインストールすることでDVSD形式のデジタルビデオカメラの信号をJavaで認識することができた 」

との記述をネット上で見つけることができました。

http://archives.java.sun.com/cgi-bin/wa?A2=ind0510&L=jmf-interest&F=&S=&P=3500

ダウンロードはこんな所からできるようです。
http://cowscorpion.com/Codec/PanasonicDVCodec.html

 Javaで何とかしたわけではないので、ちょっとインチキっぽいですが
この情報私には大変役にたちました。
尚、私はコーデックが何で、これが何をしてJavaで認識できるようになったのかも分からないド素人です。