安価な家庭用のネットワークカメラを使い
自作のJAVAプログラムで
最終的には工場内の設備の自動監視を
おこなうことを企んでいます。
そこでEthernetに接続できて
無線機能がついている物の中で一番安い
corega CG-WLNCMNGV2というカメラを
買ってきて遊んでいます。
しかし、ネットワークカメラって
画像が勝手に流れてくるような
ビデオカメラのようなものを考えていたので
JMFで
MediaLocator("vfw://0")とすれば
captureできるのかと考えていたのですが
仕様をよく読んでみると
このカメラはJPEG画像を
連続的に送っているだけのようで
残念ながらJMFではMotion-JPEGは扱えないようなので
結局、カメラ内部に保存されている
IMAGE.JPGというファイルを
ImageIOのread()メソッドを使って読むことにしました。
これで一応目的とすることは
ある程度できるようになったのですが
残念ながら 2.5fps程度が精々です。
カメラ自体は20fpsは可能なようなので
何か別の方法があると思うのですが
ちょっとうまくいきません。
あと画像処理をするには
露光を一定にできないのも少々難有りですね。
2007年11月8日木曜日
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で認識できるようになったのかも分からないド素人です。
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で認識できるようになったのかも分からないド素人です。
登録:
投稿 (Atom)