人工知能に関する断創録

このブログでは人工知能のさまざまな分野について調査したことをまとめています(更新停止: 2019年12月31日)

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を追加する必要があります。

f:id:aidiary:20091016215949j:plain
f:id:aidiary:20091016220538j:plain

7. リンクするライブラリの設定

C/C++ Build > Settingsを選択。Configurationで[All configurations]を選択。MinGW C++ Linker > LibrariesのLibrariesに

  • cv200
  • highgui200
  • cxcore200
  • ml200

をそれぞれ追加。

f:id:aidiary:20091016220553j:plain

(注)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は空のエントリを追加。

f:id:aidiary:20091016220427j:plain

10. 実行

Ctrl+F11でプログラムを実行です。レナさんが表示されれば大成功!