とある事情から、VisualStudio 2012(32bit)用のOpenCV 3.2.0ライブラリをビルドしなくてはいけなくなったため、その手順を書き残していきます。
【とある事情】
OpenCV 2.4.10(32bit)を使用したとき、rectangle()等で指定できる座標が32,767(SHRT_MAX)までであったため
(OpenCV 3.2.0(64bit)はそれ以上でも問題なかった)
しかも、OpenCV 3.2.0に32bitのライブラリ(バイナリ)は用意されていない
CMakeの用意
OpenCVをビルドするためにはCMakeが必要なため、事前にインストールしておく必要があります。
CMakeのダウンロード
https://cmake.org/download/からダウンロードを行います。
今回はバイナリのインストーラでいいため、「cmake-3.9.2-win64-x64.msi」をダウンロードしました。
CMakeのインストール
OpenCVのビルド
では本題の32bit用のOpenCVのビルドを行います。
OpenCVのダウンロード
githubからダウンロードしてきてもよいが、今回はソースがまとまっている公式のダウンロードサイトから取得した。
※「Win pack」でもよいが、すでにVisualStudio 2017用のバイナリが含まれれているので、ちょっと目障り(苦笑)
ダウンロード後、zipを解凍してファイルを展開します。
(今回は「C:\opencv-3.2.0\sources」に展開したものとします)
OpenCVの準備
CMake(cmake-gui)を起動します。
※管理者として実行します
まずはソースのあるフォルダと、出力先のフォルダを指定します。
出力先は存在しないフォルダを指定しても大丈夫です。
次に「Configure」ボタンを押します。
この時、出力先のフォルダがないときは、以下のダイアログが表示されます。
作成するVisualStudioのバージョンを聞かれますので、今回は2012を指定します。(Win64ではありません)
「Finish」ボタンを押すと処理が実行されるのですが、残念ながらエラーになります。
そこで、CUDAの設定をOFFにします。
その後、「Configure」ボタンを押すと、無事、処理が終了します。
さらに「Generate」ボタンを押すと、出力先にプロジェクトファイル「OpenCV.sln」が出力されます。
OpenCVのビルド
出力された「OpenCV.sln」をVisualStudio 2012で開きます。
その後「INSTALL」プロジェクトのビルドを行います。
※ちゃんと「Release」「Win32」にしてビルドすること
その結果、インクルードファイルは「C:\opencv-3.2.0\build\include」に、ビルドされたライブラリは「C:\opencv-3.2.0\build\install\x86\vc11\lib」に、DLLは「C:\opencv-3.2.0\build\install\x86\vc11\bin」に出力されます。
※バージョンや環境によっては違う場所にできることがあります
3.3.1→「C:\opencv\build\lib」「c:\opencv\build\bin」
最後に
CMakeでエラーになったあと、そこから設定変更を行うという流れが、気分的によろしくないのですが、GUIでできるのは便利かもしれません。
でもどれを外せばいいかなどは、試行錯誤になりそうです。
(エラーメッセージからは判断付きづらい)