EclipseでOpenCV
OpenCVのプログラムを統合開発環境EclipseとC/C++コンパイラMinGWで開発するためのセットアップ方法をまとめておきます。Windows環境でVisual StudioをインストールしなくてもOpenCVプログラムを開発できます。
1. MinGWのインストール
ここからMinGW-5.1.6.exe(2009/10/15現在)をダウンロード。インストール途中でg++ compilerとMinGW Makeオプションをチェック。
2. Eclipseのインストール
ここからEclipse IDE for C/C++ Developers(Eclipse CDT)をダウンロード。解凍するとeclipseフォルダができるのでC:\eclipseなどに移動。
3. OpenCVのインストール
ここからOpenCV-2.0.0a-win32.exe(2009/10/15現在)をダウンロード。デフォルトでは、C:\OpenCV2.0にインストールされます。
4. 環境変数の設定
環境変数のPATHにC:\MinGW\bin;C:\OpenCV2.0\bin;を追加。OpenCVのbinを追加しないとdllがリンクできずOpenCVプログラムがクラッシュするので注意。
5. 新規プロジェクトを作成
Eclipseで新規C++プロジェクトを作成。プロジェクト名(ここではtest)を入力。Project typeでEmpty Project、ToolchainsでMinGW GCCを選択。
6. includeとlibフォルダの設定
コンパイラにOpenCVのヘッダファイル(include)とライブラリファイル(lib)の場所を教えます。Project Explorerのtestプロジェクトを右クリックしてPropertiesにてC/C++ General > Paths and Symbolsを選択。Configurationで[All configurations]を選択。Includes > C++ Source Fileを選択してC:\OpenCV2.0\include\opencvをAdd。Library Pathsを選択してC:\OpenCV2.0\libをAdd。
(注)CとC++の設定は別々なので注意。もし、拡張子が.cのCプログラムを追加するならIncludes > C Source Fileにも同様にC:\OpenCV2.0\include\opencvを追加する必要があります。
7. リンクするライブラリの設定
C/C++ Build > Settingsを選択。Configurationで[All configurations]を選択。MinGW C++ Linker > LibrariesのLibrariesに
- cv200
- highgui200
- cxcore200
- ml200
をそれぞれ追加。
(注)CとC++の設定は別々なので注意。もし、拡張子が.cのCプログラムを追加するならC Source Fileにも追加する必要がある。
(注)5から7の設定はプロジェクトを作成するたびに行います。面倒ですが・・・
8. ソースファイルを作成
プロジェクトにソースファイルを追加してコードを書きます。たとえば、main.cpp(C++プログラムです)を追加して以下のコードを入力します。Eclipseは入力補完がすごく充実してます。たとえば、cvと打ち込んだ状態でCtrl+Spaceを押すと関数候補が引数の説明付きでずらっと並ぶので↑↓矢印で選択してEnterを押すとかってに入力してくれます。
#include <cv.h> #include <highgui.h> int main(int argc, char **argv) { // 画像をロード IplImage *img = cvLoadImage("C:/OpenCV2.0/samples/c/lena.jpg", CV_LOAD_IMAGE_COLOR); // ウィンドウを作成 cvNamedWindow("image", CV_WINDOW_AUTOSIZE); // ウィンドウに画像を表示 cvShowImage("image", img); // キー入力待機 cvWaitKey(0); // 後処理 cvReleaseImage(&img); cvDestroyWindow("image"); return 0; }
9. ビルド
メニューのProject > Build AllかCtrl+Bでビルド。成功すればProject ExplorerにBinaries/test.exeができます。もし失敗したらソースコード上に警告やエラー位置と内容が表示されるので修正すべき箇所が一目でわかります。
(注)__exchange_and_addに関連したコンパイルエラーが出る場合は以下の修正を加えます(OpenCV InstallGuideより)。
(1) C:\OpenCV2.0\include\opencv\cxoperations.hppをエディタで開く。改行コードの関係でメモ帳では崩れます。Eclipseで開いてください。
(2) 66から68行目(OpenCV2.0.0の場合)あたりの
#else #include <bits/atomicity.h> #if __GNUC__ >= 4
の部分を
#else #include <bits/atomicity.h> #if __GNUC__ >= 4 || __MINGW__
に修正する。__MINGW__はMINGWの前と後にアンダースコアが2つずつあります。
(3) Eclipseでtestプロジェクトを右クリックしてPropertiesを開きます。C/C++ General > Paths and Symbols > Symbolsを開いてConfigurationで[All Configuration]、LanguagesでC++ Source Fileを選択。Nameに__MINGW__、Valueは空のエントリを追加。
10. 実行
Ctrl+F11でプログラムを実行です。レナさんが表示されれば大成功!