OpenCV ビルド 4.2.0
概要
Windows,Win32API,C++ 環境で、OpenCVを使用したプログラムを作成使用としている。
環境構築として最も簡単なのは、MSYS2で opencv をインストールし、g++でビルドする方法であり、当初はこの環境を使用していた。
諸事情により cl.exe でビルドする環境を使用したい。
この場合、OpenCVはソースからビルドする必要がある。
ビルド環境
- VisualStudio
- 2015 Community Update 3
- VisualStudio 2015 Community インストール
- CMake
- 3.16.2
- CMake
ポイント
- ビルドには opencv (https://github.com/opencv/opencv.git) だけでなく opencv_contrib (https://github.com/opencv/opencv_contrib.git) が必要
- CMakeを使用して VisualStudio のビルド設定ファイルを生成する
- VisualStudio では "バッチビルド" を使用し、"INSTALL"プロジェクトを選択してビルドする
- "CMAKE_INSTALL_PREFIX" で指定したディレクトリにインストールされる
- CMake の "Where to build the binaries:" で指定するディレクトリはビルド用のディレクトリであり、デフォルト設定だと "CMAKE_INSTALL_PREFIX" はこの下位層の /install ディレクトリとなる
- MSYS2がインストールされているとCMakeが MSYS2 のライブラリのパスを自動設定するが、これらは無効にする
ここでのビルドオプションの前提
- opencv ソースコード
- D:/data/project_git_dl/opencv
- opencv_contrib ソースコード
- D:/data/project_git_dl/opencv_contrib
- ビルドディレクトリ
- D:/data/work_build/opencv
- インストール先
- C:\usr\opencv
- CPUアーキテクチャ
- Win32(32bit)
手順
ソースの取得
gitの使用法は割愛
- opencv (https://github.com/opencv/opencv.git) を git で取得し、4.2.0 ブランチに切り替え
- opencv_contrib (https://github.com/opencv/opencv_contrib.git) を git で取得し、4.2.0 ブランチに切り替え
CMakeの操作
"Where is the source code:" と "Where to build the binaries:" を指定し、"Configure" をクリック
"Visual Studio 14 2015","Win32"を選択して "Finish"
"CMAKE_INSTALL_PREFIX"を指定
(MSYS2 のライブラリのパスを自動設定された場合)
"WITH_GSTREAMER"のチェックを外す。キャプチャは割愛するが GSTREAMER_XXX の一連の定義は "Remove Entry"する。
(MSYS2 のライブラリのパスを自動設定された場合)
"WITH_EIGEN"のチェックを外す。キャプチャは割愛するが "Eigen3_DIR" 定義は "Remove Entry"する。
(MSYS2 のライブラリのパスを自動設定された場合)
"BUILD_opencv_python_bindings_generator","BUILD_opencv_python_tests" のチェックを外す。キャプチャは割愛するが PYTHON2_XXX, PYTHON3_XXX の一連の定義は "Remove Entry"する。
"Generate" をクリック
Selecting Windows SDK version 10.0.14393.0 to target Windows 10.0.18362. Detected processor: AMD64 sizeof(void) = 4 on 64 bit processor. Assume 32-bit compilation mode libjpeg-turbo: VERSION = 2.0.2, BUILD = opencv-4.2.0-libjpeg-turbo found Intel IPP (ICV version): 2019.0.0 [2019.0.0 Gold] at: D:/data/work_build/opencv/3rdparty/ippicv/ippicv_win/icv found Intel IPP Integration Wrappers sources: 2019.0.0 at: D:/data/work_build/opencv/3rdparty/ippicv/ippicv_win/iw Could not find OpenBLAS include. Turning OpenBLAS_FOUND off Could not find OpenBLAS lib. Turning OpenBLAS_FOUND off Could NOT find BLAS (missing: BLAS_LIBRARIES) LAPACK requires BLAS A library with LAPACK API not found. Please specify library location. Could NOT find JNI (missing: JAVA_AWT_LIBRARY JAVA_JVM_LIBRARY JAVA_INCLUDE_PATH JAVA_INCLUDE_PATH2 JAVA_AWT_INCLUDE_PATH) VTK is not found. Please set -DVTK_DIR in CMake to VTK build directory, or to VTK install subdirectory with VTKConfig.cmake file OpenCV Python: during development append to PYTHONPATH: D:/data/work_build/opencv/python_loader Excluding from source files list: <BUILD>/modules/core/test/test_intrin128.avx2.cpp Excluding from source files list: <BUILD>/modules/core/test/test_intrin128.avx512_skx.cpp Excluding from source files list: <BUILD>/modules/core/test/test_intrin256.avx2.cpp Excluding from source files list: <BUILD>/modules/core/test/test_intrin256.avx512_skx.cpp Excluding from source files list: <BUILD>/modules/core/test/test_intrin512.avx512_skx.cpp Excluding from source files list: modules/imgproc/src/imgwarp.avx2.cpp Excluding from source files list: modules/imgproc/src/resize.avx2.cpp Excluding from source files list: modules/imgproc/src/sumpixels.avx512_skx.cpp Registering hook 'INIT_MODULE_SOURCES_opencv_dnn': D:/data/project_git_dl/opencv/modules/dnn/cmake/hooks/INIT_MODULE_SOURCES_opencv_dnn.cmake opencv_dnn: filter out cuda4dnn source code Excluding from source files list: <BUILD>/modules/dnn/layers/layers_common.avx2.cpp Excluding from source files list: <BUILD>/modules/dnn/layers/layers_common.avx512_skx.cpp Excluding from source files list: modules/features2d/src/fast.avx2.cpp General configuration for OpenCV 4.2.0 ===================================== Version control: 4.2.0 Platform: Timestamp: 2020-01-03T02:28:03Z Host: Windows 10.0.18362 AMD64 CMake: 3.16.2 CMake generator: Visual Studio 14 2015 CMake build tool: C:/Program Files (x86)/MSBuild/14.0/bin/MSBuild.exe MSVC: 1900 CPU/HW features: Baseline: SSE SSE2 requested: SSE2 Dispatched code generation: SSE4_1 SSE4_2 FP16 AVX requested: SSE4_1 SSE4_2 AVX FP16 SSE4_1 (17 files): + SSE3 SSSE3 SSE4_1 SSE4_2 (2 files): + SSE3 SSSE3 SSE4_1 POPCNT SSE4_2 FP16 (1 files): + SSE3 SSSE3 SSE4_1 POPCNT SSE4_2 FP16 AVX AVX (5 files): + SSE3 SSSE3 SSE4_1 POPCNT SSE4_2 AVX C/C++: Built as dynamic libs?: YES C++ Compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe (ver 19.0.24215.1) C++ flags (Release): /DWIN32 /D_WINDOWS /W4 /GR /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi /fp:precise /arch:SSE /arch:SSE2 /EHa /wd4127 /wd4251 /wd4324 /wd4275 /wd4512 /wd4589 /MP8 /MD /O2 /Ob2 /DNDEBUG C++ flags (Debug): /DWIN32 /D_WINDOWS /W4 /GR /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi /fp:precise /arch:SSE /arch:SSE2 /EHa /wd4127 /wd4251 /wd4324 /wd4275 /wd4512 /wd4589 /MP8 /MDd /Zi /Ob0 /Od /RTC1 C Compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe C flags (Release): /DWIN32 /D_WINDOWS /W3 /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi /fp:precise /arch:SSE /arch:SSE2 /MP8 /MD /O2 /Ob2 /DNDEBUG C flags (Debug): /DWIN32 /D_WINDOWS /W3 /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi /fp:precise /arch:SSE /arch:SSE2 /MP8 /MDd /Zi /Ob0 /Od /RTC1 Linker flags (Release): /machine:X86 /INCREMENTAL:NO Linker flags (Debug): /machine:X86 /debug /INCREMENTAL ccache: NO Precompiled headers: YES Extra dependencies: 3rdparty dependencies: OpenCV modules: To be built: calib3d core dnn features2d flann gapi highgui imgcodecs imgproc ml objdetect photo stitching ts video videoio Disabled: python_bindings_generator python_tests world Disabled by dependency: - Unavailable: java js python2 python3 Applications: tests perf_tests apps Documentation: NO Non-free algorithms: NO Windows RT support: NO GUI: Win32 UI: YES VTK support: NO Media I/O: ZLib: build (ver 1.2.11) JPEG: build-libjpeg-turbo (ver 2.0.2-62) WEBP: build (ver encoder: 0x020e) PNG: build (ver 1.6.37) TIFF: build (ver 42 - 4.0.10) JPEG 2000: build (ver 1.900.1) OpenEXR: build (ver 2.3.0) HDR: YES SUNRASTER: YES PXM: YES PFM: YES Video I/O: DC1394: NO FFMPEG: YES (prebuilt binaries) avcodec: YES (58.54.100) avformat: YES (58.29.100) avutil: YES (56.31.100) swscale: YES (5.5.100) avresample: YES (4.0.0) DirectShow: YES Media Foundation: YES DXVA: YES Parallel framework: Concurrency Trace: YES (with Intel ITT) Other third-party libraries: Intel IPP: 2019.0.0 Gold [2019.0.0] at: D:/data/work_build/opencv/3rdparty/ippicv/ippicv_win/icv Intel IPP IW: sources (2019.0.0) at: D:/data/work_build/opencv/3rdparty/ippicv/ippicv_win/iw Lapack: NO Custom HAL: NO Protobuf: build (3.5.1) OpenCL: YES (NVD3D11) Include path: D:/data/project_git_dl/opencv/3rdparty/include/opencl/1.2 Link libraries: Dynamic load Python (for build): NO Java: ant: NO JNI: NO Java wrappers: NO Java tests: NO Install to: C:/usr/opencv ----------------------------------------------------------------- Configuring done Generating done
"Open Project" をクリック
"バッチ ビルド" を選択
"INSTALL","Release"をチェックし、"リビルド"
ビルド結果
"CMAKE_INSTALL_PREFIX"で指定されたディレクトリ(今回は C:\usr\opencv)以下に、バイナリ、スタティックライブラリ、ダイナミックライブラリ、ヘッダがインストールされる
下記のようなディレクトリ構成となる
- opencv
- etc
- include
- opencv2
- x86
- vc14
- bin
- lib
- vc14