https://docs.opencv.org/3.4.2/d3/d52/tutorial_windows_install.html にある Building the library に基いてコンパイルする。
Visual Studio Installer を起動して「更新」をクリックすると自動的に最新版になる。
https://cmake.org/download/でLatest Release (3.11.4) の Binary distribution cmake-3.11.4-win64-x64.msi をダウンロードしてから、実行すればインストールできる。 デフォルトでよいとのことなので"Don't add system PATH" でインストールした。
公式サイト https://ant.apache.org/ の左側メニューのDownloadから Binary Distributions をクリックして、 apache-ant-1.10.4-bin.zip を選択する。 展開したフォルダを C:\sys\apache\ant に移動して、環境変数 ANT_HOMEにこのパスを設定する。 その上で環境変数のPATHの先頭に
%ANT_HOME%\binという記述を追加する。
https://github.com/opencv/opencv から Download ZIP をクリックすると opencv-master.zip が手元にできる。 これを展開して次のフォルダに置いたとする。
C:\Users\nitta\Documents\opencv\opencv-master
opencv_contrib もコンパイルしたい場合は https://github.com/opencv/opencv_contrib からダウンロードして、opencv-masterの下に展開する。 C:\Users\nitta\Documents\opencv\opencv-master\opencv-contrib-master
CMakeの画面で
Where is the source code: C:\Users\nitta\Documents\opencv\opencv-master Where to build the binaries: C:\Users\nitta\Documents\opencv\buildと設定する。 buildしたバイナリを置くフォルダは、存在していない場合は新しく生成されるので、 この段階では存在していなくても構わない。 Configure をクリックする。
Buildするコンパイラを選ぶ画面となるので、 "Specify generator for the project"の欄から "Visual Studio 15 2017 Win64" を選択すること。
しばらく待つと新しく設定が可能になった項目の背景が赤く表示される。
C:\Users\nitta\Documents\opencv\opencv-master\opencv_contrib-master\modules
build/install/x64/vc15/bin --> C:\opencv\bin build/install/x64/vc15/lib --> C:\opencv\lib build/install/include --> C:\opencv\include
C:\opencv\bin
プロジェクト "opencv_test_dnn.vcxproj" のビルドが終了しました -- 失敗。
OpenCL ライブラリを使わない設定にしたら、とりあえずコンパイルできるようになった。
OPENCL_FOUND ✔ -> □ OPENCL_DNN_OPENCL ✔ -> □ WITH_OEPNCL ✔ -> □ WITH_OEPNCLAMDBLAS ✔ -> □ WITH_OPENCLAMDFFT ✔ -> □ WITH_OEPNCL_SVM □ -> □
どうもANTの実行可能ファイルが見つからないのが原因のようだ。 PATHに ANT_HOME 変数を使うのではなく、全部書き下したパスを設定した。 ANT_EXECUTABLE が見える状態で Configure, Generate, Visual Studio 2017 (x64) でのBuildは OpenCLを設定していても通った。
少し古い Anaconda 3 がインストールされている Windows10で次のようなエラーがでた。
56>LINK : fatal error LNK1104: ファイル 'python36_d.lib' を開くことができません。 56>プロジェクト "opencv_python3.vcxproj" のビルドが終了しました -- 失敗。C:\ProgramData\Anaconda3\libs\python36.lib はあるがpython36_d.lib は存在しない。 Release, x64 でビルドすると通った。 Anacondaのバージョンは関係なかったようだ。