opencvのインストール(opencv1.0)

Visual C++ 2008 Express Edition を使って無料で環境を作る。openCVは既に1.1,2.0, 2.1と版を重ねているが、Webでダウンロードできる過去の研究のサンプルコードは、昔(Opencvが1.0のころ)に作られ、動作確認されているので、アルゴリズムの確認のためにはいまだにopencv1.0の環境を作っておく必要がある。ので、やってみたメモを残す。

材料をそろえる

OpenCV1.0

http://opencv.jp/

で、OpenCV_1.0.exe をダウンロード

Visual C++

visual studio 2008 express で検索。場所は時折変わる。

インストール

vstudio 2008

  1. visual studio 2008 express のインストーラーを起動(isoイメージをダウンロードして、仮想CDドライブなどを使うと便利 バーチャルクローンドライブhttp://www.slysoft.com/ja/virtual-clonedrive.html など)
  2. VisualC++2008ExpressEditionのみを選択してインストールしておけばよい。デフォルトの選択でインストール開始。

openCV 1.0

  1. ダウンロードしたOpenCV_1.0.exeを実行。
  2. 環境変数PATHへの設定は自動にさせる。
  3. Visual studioにOpencvのヘッダーファイルとライブラリの場所を設定する。VisualC++を起動する。メニューの「ツール」−「オプション」を選択する。ダイアログで、「プロジェクトおよびソリューション」ー「VC++ディレクトリ」ツリーを展開する。右ペインで、「ディレクトリを表示するプロジェクト」の選択ボックスを「インクルードファイル」にする。
  4. 以下の4つのディレクトリを追加する。C:\Program Files\OpenCV\otherlibs\highgui、C:\Program Files\OpenCV\cxcore\include、C:\Program Files\OpenCV\cvaux\include、C:\Program Files\OpenCV\cv\include

  5. さらに、右ペインで、「ディレクトリを表示するプロジェクト」の選択ボックスを「ライブラリ ファイル」にして、C:\Program Files\OpenCV\lib を追加する。OKを押して完了。

テスト動作で確認

opencvを使ったたくさんのサンプルコードが、c:\Program Files\OpenCV\samples\c (デフォルトのインストール時)にある。

動作確認として、demhist.c(同じDirにあるbaboon.jpgも使うので一緒にコピー)を使ってみる。

  1. vc++を起動。
  2. 新規のプロジェクトを作成。Win32コンソールアプリケーションを選択。「空のプロジェクトを作成」にチェック 。ここではimagetestとした。
  3. プロジェクトの静的ライブラリの設定をする。VC++のメニューの プロジェクト − imagetestのプロパティ 。

    プロパティのページで「構成プロパティ」−「リンカ」−「入力」を選択して、「追加の依存ファイル」の欄に、「highgui.lib cv.lib cxcore.lib」を追記する。demhist.cを実行するにはこの3つのlibだけでよいが、ほかのサンプルコードを実行するときは必要なものを入れる。選ぶのが面倒なら、追加の手間は面倒ではあるが、全部入れてしまうのもよい(cvcam.lib highgui.lib cxts.lib cv.lib cxcore.lib ml.lib cvaux.lib cvhaartraining.libで全て)

  4. プロジェクトにソースファイルを追加。ここでは、imagetest.cpp としておいた。この追加したソースファイルに、demhist.cのコードをまるまるコピーして、ビルドする。プログラムが参照する画像ファイル(baboon.jpg)も忘れないでソースと同じディレクトリにコピーしておくこと。正常にビルドされるとこんな感じでビルドが完了する。


  5. VC++のメニューから 「デバッグ」−「デバッグ開始」を選択して実行。インストール直後に実行すると「highgui100.dllが見つからなかったため、このアプリケーションを開始できませんでした。」と、コンポーネントが見つかりませんとエラーを返されるが、設定が反映されてないだけなので、システムを再起動すると次回からは動くようになる。
  6. ビルドの際、「imagetest.obj : error LNK2001: 外部シンボル "_cvSet" は未解決です。」などの、ビルドエラーがたくさん出たら、上記3のリンカの設定が間違っている。よくやるミスは、Debug と Release の設定をそれぞれしないといけないのに、片方を設定し忘れる。


補足

文字コードの警告が出る。解決する方法

c:\program files\opencv\cv\include\cvcompat.h(784) : warning C4819:
ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。
データの損失を防ぐために、ファイルを Unicode 形式で保存してください。
この警告で指摘されているcvcompat.hをVC++で開いて、ちょこっと変更かけて保存しなおすと警告が出なくなる。