OpenCV、機械学習、はやりのDeep learningの環境構築の方法、サンプルの動かし方、APIの使い方、Tipsなどをすぐに忘れてしまうので、備忘録として記録している。記憶がなくなるスピードが、早いのでメモしておかないと再現できなくなる確率が高まっている。 最近、再度HDDを飛ばしてしまい、過去の自分のページに再度助けられた。 また、DNNモジュールを触る機会が増えているので、C++からPyhonへと鞍替え中。 内容を気にいっていただければ、twitterで紹介願います。
2012年11月20日火曜日
OpenCVでIP Cameraの画像を表示してみた
IP Cameraとして、TENVIS JPT3815が安く入手できるので購入してみた。
最初にカメラの設定が必要であるが、サイトから専用アプリをダウンロードし、有線イーサで接続し
パスワードや無線LANの設定を行った。
OpenCVでは、VideoCaptureのopenにURLを指定すれば、ストリームを再生できるはずである。
JPT3815のマニュアルでは、ストリーム出力がmjpegであったが、OpenCV 2.4.2のVideoCaptureでは、mjpegを解釈できないようで落ちてしまう。
mjepgのURLは、以下のようになる。
http://IPADDRESS/videostream.cgi?user=[USERNAME]&pwd=[PASSWORD]&resolution=32&rate=0
そこでだめもとでH264を指定したところ、表示することができた。
http://IPADDRESS/videostream.asf?user=[USERNAME]&pwd=[PASSWORD]&resolution=32&rate=0
ユーザ名と、パスワードが平文なのがあれだが、以下のコードでVGAサイズで表示できる。
std::string fname = std::string("http://192.168.1.100/videostream.asf?user=hoge&pwd=hoge&resolution=32&rate=0");
mCap.open(fname);
while(true) {
mCap >> mat;
cv::imshow("Capture", mat);
cv::waitKey(15);
}
今後IRモードで遊んでみる。
登録:
コメントの投稿 (Atom)
こんにちは、大変参考になりました。
返信削除ちなみに静止画像もキャプチャーできるのでしょうか??
返事が遅くなり、すいません。
削除対象の機器を、TENVIS JPT3815と限定します。
whileでループ内で、一回読み出しに成功すれば、ループから抜ければ静止画として取得できます。
他の、IPカメラに関してはわかりません、。