2012年11月29日木曜日

OpenCV 2.4.3のHoughCirclesにバグがある

OpenCV 2.4.3 Windows版のHoughCirclesをデバッグモードで動かすと落ちる。
リリースモードでは、問題なく動くことを確認した。

2012年11月28日水曜日

OpenCV 2.4.3の新サンプル pca.cppを試してみた


新しいサンプルのpca(主成分分析)を試してみた。

テンプレートのプロジェクトに、元のソースをコピーして、ビルドすれば問題なくビルドできる。

説明文には、ATTの顔画像のデータを使用して試してみてねと書いてあるので、ATTのzip形式のデータをダウンロードして適当なフォルダーに展開する。

15の顔画像を使用してねとの記載に従い、15の顔データへのパスを書いたファイルを作成して、保存する。

Visual Studio のプロジェクトの、構成プロパティ、デバッグ、コマンド引数に上記ファイルのパスを設定して実行。

サンプルの初期値では、Retained Varianceが95%となっており、最初のデータの画像が再現される。



Varianceを小さくすると、平均顔となっていく。


注意:Varianceを0にするとプログラムが落ちるので、onTrackbarでpos = 0をはねたほうがよい

以上

2012年11月27日火曜日

OpenCV 2.4.3の新サンプル bgfg_gmg.cppを試してみた。


ソースをサンプルを動かす雛形にペーストしてビルドしてみたが、

    initModule_video();
  の関数がないことや、

    Ptr<BackgroundSubtractorGMG> fgbg = Algorithm::create<BackgroundSubtractorGMG>("BackgroundSubtractor.GMG");
  でオブジェクトを生成しても

    if (fgbg.empty())

    のところで引っかかり実行できない。

  opencv documentationでも、"BackgroundSubtractor.GMG"が見つからないので、サンプルプログラムは、残念ながらコードが不足していると思われる

2012年11月26日月曜日

OpenCV 2.4.3の新サンプル SimpleFlow.cppを試してみた


OpenCV 2.4.3のサンプルにsimleflowが存在していたので、ソースの中身を除いてみた。

Lucas Kanadeが1チャンネル(通常輝度信号)のみで処理をしているところ、3チャンネル使用している。

ファイルから画像を読み込み、フローを計算して入力画像に重ねて表示するプログラムを作成してみた。画像には、2.4.3のsamples\gpu\768x576.aviを使用している(人が道路を歩いている画像であるが、それほど品質はよくない)

第一印象は、計算が重い。最初PCがフリーズしたのかと思うくらい時間がかかった。

結果の画像を示す。




この画像輝度信号のみでoptical flowを求めると、動いていない場所に大量のベクトルが検出されるが、simple flowでは、動きのない部分にはベクトルは検出されない。

それでも、サンプルの結果には、道路の部分にもベクトルが生じている(これは元の画像に問題があるのではと思う)

APIの説明は、ここ。 元の論文へのリンクも掲載されており、2012年に発表された最新のものである。

以上

2012年11月22日木曜日

OpenCV 2.4.2と2.4.3のサンプルコードを比較してみた


インストールしてついでにC++のサンプルコードを比較してみた。
Winmergeでフォルダーの比較をしたところ、ほとんどのソースに差分が生じている

何かと思って確かめてみるとほとんどは、改行コードの違い
 2.4.2 windows
 2.4.3 Unix
と、不要なスペースの違いであるが、いくつかのソースは一部修正されている


また、2.4.3で増えたものは以下のものである

  bgfg_gmg.cpp
 fabmap_smple.cpp
  muluticascadeclassifire.cpp
  pca.cpp
  simpleflow_demo.cpp

である。どういうものかは後で覗いてみる。

tutorial_codeのフォルダー数は同じだが、中身まで確認していない。

サンプルの画像は、templ.pngが増えている。

以上

2012年11月21日水曜日

Windows7 64bit版にOpenCV 2.4.3の開発環境を構築した

検索などでこのページを訪れる人が、数は少ないけど、コンスタントにいる。
ちょうどこの上にあるG+1のボタンを押してもらうと、Goolgeの検索に見つかりやすくなるので、ご協力いただきたい。

最新の2.4.6の記事 (7/9 追加)
Windows7 64bit版にOpenCV 2.4.6の開発環境を構築した

 11/3にリリースされた2.4.3の環境を今頃構築した

1 ここからWindows版をダウンロードする

2 OpenCV-2.4.3.exeを実行しインストールディレクトリc:\を指定する

3 展開後、ディレクトリ名をopencvからopencv243に変更する

4 opencv2431フォルダーに binフォルダーの作成とlibフォルダーの作成

5 OpenCV libのコピー
  c:\opencv243\build\x86\vc10\libの内容を
  c:\opencv243\libにコピー

6 OpenCV binのコピー
  c:\opencv243\build\x86\vc10\binの内容を
  c:\opencv243\binにコピー

7 OSの環境変数の設定(要管理者権限)
  コントロールパネル、システムとセキュリティ、システムを開き
  システムの詳細設定の環境変数ボタンを押し
  システム環境変数のPathの編集
  末尾に";c:\opencv243\bin"を追加

8 Visual C++ 2010 Expressのパスの設定を行う
 この記事の242を243に置き換える

以上の作業は30分もかからない。また、今回からTBBのライブラリは不要となった。

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モードで遊んでみる。

2012年11月9日金曜日

OpenCV2.4.3のチュートリアルが提供されていた


11/3の2.4.3のリリースにあわせて、チュートリアルのpdfがリリースされていた
403ページと非常に読み応えのあるものとなっている。

各章のタイトルを紹介しておく

1 OpenCVの紹介
2 core module
3 Image Processing
4 GUI
5 カメラのキャリブレーションと3D再構成
6 2D Feture
7 動画解析
8 物体検出
9 機械学習
10 GPU の利用
11 コントリビューション
12 iOS上での開発

Kinddle whiteがとどいたら入れてみる予定


追加
1章をざっと眺めてみた 
各種環境構築に97ページも割いている。
あと、1章の最後にチュートリアルを書いてコミュニティに貢献しようとの記述が


2012年11月8日木曜日

Tegra向けSDKにOpenCV2.4.2が含まれている


試す時間がないが、忘れないようにメモ

10/31に TADP(Tegra Android Development Pack)2.0がリリースされた
中のOpenCVは、OpenCV.orgが提供しているものと同じと推測されるが、開発環境一式が準備されており、またドキュメントなどもあるようだ

ダウンロードには、Tegra開発者の登録が必要である(無料