opencvのインストール(opencv1.0)
Visual C++ 2008 Express Edition を使って無料で環境を作る。openCVは既に1.1,2.0, 2.1と版を重ねているが、Webでダウンロードできる過去の研究のサンプルコードは、昔(Opencvが1.0のころ)に作られ、動作確認されているので、アルゴリズムの確認のためにはいまだにopencv1.0の環境を作っておく必要がある。ので、やってみたメモを残す。
材料をそろえる
OpenCV1.0
で、OpenCV_1.0.exe をダウンロード
Visual C++
visual studio 2008 express で検索。場所は時折変わる。
インストール
vstudio 2008
- visual studio 2008 express のインストーラーを起動(isoイメージをダウンロードして、仮想CDドライブなどを使うと便利 バーチャルクローンドライブhttp://www.slysoft.com/ja/virtual-clonedrive.html など)
- VisualC++2008ExpressEditionのみを選択してインストールしておけばよい。デフォルトの選択でインストール開始。
openCV 1.0
- ダウンロードしたOpenCV_1.0.exeを実行。
- 環境変数PATHへの設定は自動にさせる。
- Visual studioにOpencvのヘッダーファイルとライブラリの場所を設定する。VisualC++を起動する。メニューの「ツール」−「オプション」を選択する。ダイアログで、「プロジェクトおよびソリューション」ー「VC++ディレクトリ」ツリーを展開する。右ペインで、「ディレクトリを表示するプロジェクト」の選択ボックスを「インクルードファイル」にする。
- 以下の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
- さらに、右ペインで、「ディレクトリを表示するプロジェクト」の選択ボックスを「ライブラリ ファイル」にして、C:\Program Files\OpenCV\lib を追加する。OKを押して完了。
テスト動作で確認
opencvを使ったたくさんのサンプルコードが、c:\Program Files\OpenCV\samples\c (デフォルトのインストール時)にある。
動作確認として、demhist.c(同じDirにあるbaboon.jpgも使うので一緒にコピー)を使ってみる。
- vc++を起動。
- 新規のプロジェクトを作成。Win32コンソールアプリケーションを選択。「空のプロジェクトを作成」にチェック 。ここではimagetestとした。
- プロジェクトの静的ライブラリの設定をする。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で全て)
- プロジェクトにソースファイルを追加。ここでは、imagetest.cpp としておいた。この追加したソースファイルに、demhist.cのコードをまるまるコピーして、ビルドする。プログラムが参照する画像ファイル(baboon.jpg)も忘れないでソースと同じディレクトリにコピーしておくこと。正常にビルドされるとこんな感じでビルドが完了する。
- VC++のメニューから 「デバッグ」−「デバッグ開始」を選択して実行。インストール直後に実行すると「highgui100.dllが見つからなかったため、このアプリケーションを開始できませんでした。」と、コンポーネントが見つかりませんとエラーを返されるが、設定が反映されてないだけなので、システムを再起動すると次回からは動くようになる。
- ビルドの際、「imagetest.obj : error LNK2001: 外部シンボル "_cvSet" は未解決です。」などの、ビルドエラーがたくさん出たら、上記3のリンカの設定が間違っている。よくやるミスは、Debug と Release の設定をそれぞれしないといけないのに、片方を設定し忘れる。
補足
文字コードの警告が出る。解決する方法
c:\program files\opencv\cv\include\cvcompat.h(784) : warning C4819:この警告で指摘されているcvcompat.hをVC++で開いて、ちょこっと変更かけて保存しなおすと警告が出なくなる。
ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。
データの損失を防ぐために、ファイルを Unicode 形式で保存してください。