ほわいとのプログラム

OpenCVのビルド

画像をいじる人にはおなじみのOpenCV.
それを,64ビット環境でコンパイルして
実行させるためのお話です.
64ビットOS用のOpenCVをコンパイルする(VisualStudio2005)
64ビットOS用のOpenCVをコンパイルする(VisualStudio2008)
64ビットOS用のOpenCVをコンパイルする(VisualStudio2005)

コンパイラは Visual Studio 2005,OSは Windows Vista Ultimate 64bit版 という環境でのお話です.

OpenCV(特に,haartraining.exe)を64ビット環境で使ってみようと思い,OpenCV1.0をダウンロードしてきて,早速コンパイルをしてみようとしました. しかし,簡単にはうまくいかなかったので,手順を画面のキャプチャを入れつつメモとして残しておきます.



★ OpenCV用のフォルダを準備する

OpenCV1.0をインストールして,C:\Program Files(x86)\OpenCV を適当なところにコピーします. 以下では,D:\OpenCV にコピーした場合の例です.


★ OpenCVフォルダを開く
★ OpenCV\appsフォルダを開く
★ OpenCV\apps\HaarTrainingフォルダを開く
★ OpenCV\apps\HaarTraining\makeフォルダを開く
★ ソリューションファイル haartraining.sln を開く
★ 「ビルド」メニューの「構成マネージャ」を選択する
★ 「構成マネージャ」ウィンドウ
★ 「アクティブソリューションプラットフォーム」から「x64」を選択
★ 「x64」を選択した結果
★ cvhaartrainingのプラットフォームで<新規作成...>を選択
★ 「新しいプロジェクトプラットフォーム」ウィンドウ
★ 「新しいプラットフォーム」から「x64」を選択
★ 他の設定も図のようになっているのを確認してから「OK」ボタンを押す
★ 「構成マネージャ」に戻ってx64となっているのを確認
★ haartrainingも同様にプラットフォームを追加
★ 「新しいプロジェクトプラットフォーム」ウィンドウ
★ プラットフォーム「x64」を選択
★ 「OK」ボタンを押す
★ 「構成マネージャ」に戻る
★ cvhaartrainingとhaartrainingの「ビルド」にチェック
★ 「アクティブソリューション構成」から「Release OpenMP」を選択
★ 「Release OpenMP」を選択したところ
★ cvhaartrainingのプラットフォームで「x64」を選択
★ 「x64」を選択したところ
★ haartrainingのプラットフォームで「x64」を選択
★ 「x64」を選択したところ
★ cvhaartrainingとhaartrainingの「ビルド」にチェックして「閉じる」ボタンを押す
★ 「ソリューションエクスプローラ」のcvhaartrainingを右クリック
★ cvhaartrainingプロパティページ
★ 左側ツリーの「C++」の「+」マークをクリックしてツリーを展開
★ 「プリプロセッサ」をクリック
★ 「プリプロセッサの定義」をクリックして右側のボタンを押す
★ 「プリプロセッサの定義」ウィンドウが開く
★ リストの中に「WIN64」と「EM64T」を追加して「OK」ボタンを押す
★ 左側ツリーの「ライブラリアン」の「+」をクリックしてツリー展開
★ 「出力ファイル」をクリック
★ '../../../lib/cvhaartraining_64.lib'に書き換え
★ '../../../lib/cvhaartraining_64.lib'に書き換えて「OK」を押す
★ ソリューションエクスプローラのhaartrainingを右クリックしてプロパティを選択
★ haartrainingプロパティページを開いて「プリプロセッサ」を選択
★ 「プリプロセッサの定義」ウィンドウ
★ 「WIN64」と「EM64T」を追加する
★ プロパティページへ戻る
★ 左側ツリーの「リンカ」の「入力」を選択し,右端のボタンを押す
★ 「追加の依存ファイル」ウィンドウ
★ cvhaartraining_64.lib, highgui_64.lib, cxcore_64.lib, cv_64.lib のように書き換えて「OK」ボタンを押す
★ 書き換えた結果
★ 「リンカ」の「詳細」をクリックして「対象コンピュータ」が「MachineX64」になっていることを確認
★ プロパティページから戻り,「ビルド」メニューの「ソリューションのリビルド」を選択
★ ビルドの実行中・・・
★ すべて終わると「0 失敗」と表示される
★ ビルド実行後のフォルダ
★ OpenCVフォルダへ移動
★ OpenCV\binフォルダへ移動



このようにして,ビルドしてできた結果が OpenCV\bin フォルダ内に出来上がります. haartraining.exe を使えば,パターン認識の学習に利用することができます. 64ビットモードでビルドしてあるので,メモリ空間は4GBを越えた範囲で設定することができるようになります.

64ビットOS用のOpenCVをコンパイルする(VisualStudio2008)

つぎに,コンパイラは Visual Studio 2008,OSは Windows 7 Professional 64bit版 という環境でのお話です.

この場合でも,うまくいかないことがありました. それへの対策をメモっておきます.



★ "cvhough.cpp"をコンパイルできない

コンパイラ自身が落ちます(笑). ひどいものですね. それへの対策は,icvHoughLinesProbabalistic関数の最適化にあるようです. その関数の前後に,#pragma optimize("",off) という文があるのですが, _MSC_VERが1400のとき(VisualStudio2005)にしか有効にならないようになっています.

その部分を _MSC_VER >= 1400 とでも修正すると,最適化がその部分だけOffになるので,落ちなくなります. はい.



★ streams.hがないと言われる

streams.hは,DirectShowで使われるものです. 最近では,PlatformSDKやWindowsSDKなどで,そのヘッダの置き場所が変更になっています. それを有効になるようにプロジェクトの設定を定義するだけでOKです.

最終更新日時 : 2015年 5月18日(月) 17時11分15秒