OpenCVはsourceforgeにて公開されています。
http://sourceforge.net/projects/opencvlibrary/
公開される内容はOpenCVのバージョンにより異なるのですが、最近のバージョンではライブラリをコンパイル済みのセットアップファイル(*.exe)、および、ソースコードを含み、自分でコンパイルする必要のあるファイル一式(*.zip)の2通りのファイルが公開されています。
自分でコンパイルする場合は、IPP(Intel Integrated Performance Primitives)やTBB(Intel Threading Building Blocks)などにも対応させるなど、細かい設定ができるのですが、CMakeというソフトを使い開発環境に合わせたプロジェクトを作成し、コンパイルするため、少々複雑になります。
そのため、今回は比較的簡単なコンパイル済みのセットアップファイルを使ったインストール方法を紹介します。
OpenCV2.2の入手
OpenCV2.2は先程も書いた通りsourceforgeよりダウンロードします。
(入手HP)
http://sourceforge.net/projects/opencvlibrary/
このページのDownlaodと書かれた緑色のボタンをクリックして、ファイル(OpenCV-2.2.0-win32-vs2010.exe)をダウンロードします。
ファイル名を見ても分かるように、このファイルはWindows 32bit版のVisual Studio 2010用にコンパイルされたファイルなのですが、64bit版のOS環境下でも32bitで動作します。
また、VS2010以外でも、Microsoft Visual C++ 2010 再頒布可能パッケージをインストールすることで、旧バージョンのVisual Studioでも開発する事が可能です。
OpenCV2.2のインストール方法
ダウンロードしたファイル(OpenCV-2.2.0-win32-vs2010.exe)をダブルクリックしてOpenCV2.2のインストールを開始します。
上図のような画面が表示されるので、『次へ』をクリックします。
表示されたライセンス契約(いわゆるBSDライセンス)をご確認のうえ、『同意する』をクリック
Add OpenCV to the system PATH for all users
もしくは
Add OpenCV to the system PATH for current users
を選択して『次へ』をクリック (デフォルト設定とは異なるので注意!)
インストール先を選択し、『次へ』をクリック
(今度の説明などで、このデフォルト設定を基本として説明しますので、特に変更の必要が無い場合はデフォルトのまま設定して下さい。)
スタートメニューフォルダの設定が表示されますが、このまま『次へ』をクリック
セットアップする内容も、このまま『次へ』をクリック
上図が表示されたら、『完了』をクリックして、インストールは完了です。
インストール出来たか?確認のため、スタートメニューの全てのプログラム→OpenCV2.2.0→C Samples 内の実行ファイル(例えば、morphology.exeなど)が実行できるかどうか確認してみて下さい。
(ここで、実行できない場合はPATHの設定がされていない可能性があります。)
ライブラリファイル(*.lib)とヘッダファイル(*.h)の設定
ライブラリファイル(*.lib)とヘッダファイル(*.h)の設定方法は、好みの分かれるところなので、設定方法は各個人によって異なると思いますが、私の場合は以下のようにしています。
OpenCV2.2の場合は、ヘッダファイルから別のヘッダファイルがインクルードされるので、プロジェクトの設定で『追加のインクルードディレクトリ』の設定は必須のようです。
設定方法は、Visual Studioのメニューのプロジェクト→プロパティでプロパティページを開きます。
構成プロパティ→C/C++→全般の追加のインクルードディレクトリに、OpenCV2.2のincludeディレクトリを指定します。
デフォルトでインストールした場合は
C:\OpenCV2.2\include
を指定します。
あとはソースコード中に以下のように記載します。
(プロジェクトのプロパティの構成プロパティ→リンカー→入力で設定しても構いません。)
//プロジェクトのプロパティ⇒C/C++⇒全般 の追加のインクルードディレクトリに
// 『C:\OpenCV2.2\include』を追加のこと
#include "opencv2\\opencv.hpp"
#ifdef _DEBUG
//Debugモードの場合
#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_core220d.lib") // opencv_core
#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_imgproc220d.lib") // opencv_imgproc
#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_highgui220d.lib") // opencv_highgui
#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_objdetect220d.lib") // opencv_objdetect
//以下、必要に応じて追加
//#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_ml220d.lib") // opencv_ml
//#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_features2d220d.lib") // opencv_features2d
//#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_video220d.lib") // opencv_video
//#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_calib3d220d.lib") // opencv_calib3d
//#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_flann220d.lib") // opencv_flann
//#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_contrib220d.lib") // opencv_contrib
//#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_legacy220d.lib") // opencv_legacy
//#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_gpu220d.lib") // opencv_gpu
#else
//Releaseモードの場合
#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_core220.lib") // opencv_core
#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_imgproc220.lib") // opencv_imgproc
#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_highgui220.lib") // opencv_highgui
#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_objdetect220.lib") // opencv_objdetect
//以下、必要に応じて追加
//#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_ml220.lib") // opencv_ml
//#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_features2d220.lib") // opencv_features2d
//#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_video220.lib") // opencv_video
//#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_calib3d220.lib") // opencv_calib3d
//#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_flann220.lib") // opencv_flann
//#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_contrib220.lib") // opencv_contrib
//#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_legacy220.lib") // opencv_legacy
//#pragma comment(lib,"C:\\OpenCV2.2\\lib\\opencv_gpu220.lib") // opencv_gpu
#endif
#pragmaをコメントアウトしている部分は書かなくても、ほぼ大丈夫ですし、コメントアウトしなくても大丈夫です。
ただ、opencv_ml、opencv_feature2dなどの関数を使う場合にはコメントアウトは外して下さい。
ピンバック: 【OpenCV2.2】新規プロジェクトの作成方法(C言語版) | イメージングソリューション