最終更新日: 2020-01-03 金 12:13
ホーム | 文書トップ | 目次

OpenCV ビルド 4.2.0

Table of Contents

概要

Windows,Win32API,C++ 環境で、OpenCVを使用したプログラムを作成使用としている。

環境構築として最も簡単なのは、MSYS2で opencv をインストールし、g++でビルドする方法であり、当初はこの環境を使用していた。

諸事情により cl.exe でビルドする環境を使用したい。

この場合、OpenCVはソースからビルドする必要がある。

ビルド環境

ポイント

  • ビルドには 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の使用法は割愛

CMakeの操作

"Where is the source code:" と "Where to build the binaries:" を指定し、"Configure" をクリック

01.png

"Visual Studio 14 2015","Win32"を選択して "Finish"

02.png

"CMAKE_INSTALL_PREFIX"を指定

03.png

(MSYS2 のライブラリのパスを自動設定された場合)

"WITH_GSTREAMER"のチェックを外す。キャプチャは割愛するが GSTREAMER_XXX の一連の定義は "Remove Entry"する。

04.png

(MSYS2 のライブラリのパスを自動設定された場合)

"WITH_EIGEN"のチェックを外す。キャプチャは割愛するが "Eigen3_DIR" 定義は "Remove Entry"する。

05.png

(MSYS2 のライブラリのパスを自動設定された場合)

"BUILD_opencv_python_bindings_generator","BUILD_opencv_python_tests" のチェックを外す。キャプチャは割愛するが PYTHON2_XXX, PYTHON3_XXX の一連の定義は "Remove Entry"する。

06.png

"Generate" をクリック

07.png

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" をクリック

08.png

"バッチ ビルド" を選択

09.png

"INSTALL","Release"をチェックし、"リビルド"

10.png

ビルド結果

"CMAKE_INSTALL_PREFIX"で指定されたディレクトリ(今回は C:\usr\opencv)以下に、バイナリ、スタティックライブラリ、ダイナミックライブラリ、ヘッダがインストールされる

下記のようなディレクトリ構成となる

  • opencv
    • etc
    • include
      • opencv2
    • x86
      • vc14
        • bin
        • lib

参考

ホーム | 文書トップ | 目次
Created by Emacs 27.1 (Org mode 9.3)