OpenCV3.2でopencv_contribをビルドした作業のメモ書き
動作環境 Windows7
使用したコンパイラ:Visual Studio Community 2013
CMake 3.2.1 を利用
ExamplesとTutorialsの追加のビルドの仕方(Windowsの場合)
OpenCVのビルドのしかたによっては、samplesのコードがビルドされていない場合もあるだろう。
その場合には次のようにしてCMakeLists.txtを利用してビルドできる
- CMakeのGUI版で[Where is the source code:]に次のCMakeLists.txt のあるディレクトリを指定する。
opencv/sources/samples/CMakeLists.txt
をCMake使ってVisual Studio 用の*.sln ファイル *.vcxprjファイルを生成する。 - samples.sln をダブルクリックしてVisual Studioで開きます。
[build][build solution]で ビルドするとDebug もしくは Release のディレクトリに、cpp-example-とかcpp-tutorial-とか前についたファイル名で生成されます。
cpp-example-3calibration.exe
cpp-tutorial-AddingImages.exe - コマンドラインで実行します。
実行したときにDLLが見つからないというエラーを生じるときには、環境変数PATHにビルドしたバージョンのOpenCVのDLLのあるディレクトリを追加しておきます。
そのサンプルプログラムの使い方が分からないときは、元のソースコードを読む。
contribのコードをビルドする方法(Windows)
opencv_contrib のビルド方法は、Linuxについてはよく書かれている。WindowsでVisual Studioでビルドする方法については、以下の記事を見つけました。それを元に、自分のPCでの設定に合わせて、cmake -G "Visual Studio 12" を使うことで、opencv_contribのモジュールをビルドすることができました。(opencv_aruco320.dllが生成されているので、モジュールのビルドは成功している。)
sampleのコードをビルドするにはcmakeのコマンドライン引数に次のoptionを追加する。
-D BUILD_SAMPLES=ON
OpenCV 3.0 を opencv_contrib を有効にして VS 2013 用にコンパイルする
cmake -G "Visual Studio 12"
cmake -G "Visual Studio 12 Win64" 64bit版のコンパイラを用いている場合
cmake -G "Visual Studio 12" -D CMAKE_BUILD_TYPE=Release -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.0.0/modules ..
このようにしてビルドした後は、
例:
(opencv)/build/lib/Debug
(opencv)/build/lib/Release
に生成されたlibファイルが追加になります
DLLが生成されたディレクトリは環境変数PATHに追加します
例:
(opencv)/build/bin/Debug
(opencv)/build/bin/Release
opencv_contrib のアルファベット順の最初にあるArUcoには、こういった具合にドキュメントが書かれている。
Tutorials for contrib modules
ArUco marker detection (aruco module)
OpenCVのビルドは、CMakeで指定するオプションの範囲によって難易度が極端に変わります。
以下の記事は、自分がやろうとしていることの難易度を知ることができます。
qiita OpenCV完全体コンパイル難易度ランキング