LoginSignup
8
11

More than 5 years have passed since last update.

Visual Studio 2015によるOpenCV3.2のコンパイル

Last updated at Posted at 2017-01-08

概要

OpenCV3.2拡張機能(contrib),および,その他拡張ライブラリも一緒にコンパイルしたログ.

一緒にコンパイル・インストールするライブラリ一覧:

  • Qt:デフォルトよりは使いやすいGUI用.
  • VTK:vizモジュールのコンパイルに必須.
  • Eigen:行列計算ライブラリ
  • CUDA:GPUのCUDAモジュール用
  • doxygen:ドキュメント生成用.
  • graphviz:ドキュメント生成用.doxygenと両方ともそろえないと駄目(なはず).
  • perl:doxygenを動かすにの必要です.texを入れるときに,だいたい一緒に入ってるので忘れがち.

使ったコンパイラは,Visual Studio 2015 Professional,OSはWindows10 64-bit.

手順

  1. Open SourceのWebインストーラをダウンロードして,Qt5.7のmsvs2015 64-bitを選択してインストール.
  2. VTK7.1をデフォルトでcmake->コンパイルする.コンパイル時間短縮のためにCMAKE_CXX_MP_FLAGにチェックを入れて,並列コンパイルしてもOK.
    • VTK_DIRの環境変数を作ってVTKのルートディレクトリにパスを通す.そしてVTKのbinにもパスを通す(せっかくVTK_DIRを定義したので例えば→ %VTK_DIR%\bin).
    • With Qtなんたらはチェックを入れて有効化しない.たぶん何もしなくてもデフォルトで過不足なく動くはず.
  3. Eigenをダウンロードして,展開して適当な場所にコピー.ヘッダだけで動くライブラリのため,コンパイルの必要はない.EIGEN_INCLUE_PATHの環境変数を作って,C:\eigen3.3.0など,ファイルを展開したところのパスの名前で値を作る.
  4. doxygenとgraphvizをインストール.ついでにactive perlも入れる.
  5. CUDA8.0をインストール.
  6. OpenCVのソースにcontribのソースの中身を全部コピーしたあとで,いろいろオプションを有効化してCMAKE.詳細はこのあたりを参照
    • コンパイル時間短縮のため,CUDAのバージョンを指定することが必須です.特に2はそろそろサポート対象から外れます.今回は,研究室のGPU事情からCUDA_ARCG_BINに5.2と6.1を指定.
    • with Qtにチェック, with OpenGLにチェック,with CUBLASにチェック(使わないけどせっかくなので).
    • cvvモジュールのstring関連のファイル(\cvv\src\stfl\stringutils.cpp)がおかしいのでエラーが出ている場所をコメントアウト(ウムラウトがついてる文字が認識できない).
    • CUDAのパフォーマンステストのみエラーが出るので,気にせずlib,dllはインストールする.そのうち対応されるだろう.

リンク

備考

OpenBLASによるwith LANPACKの有効化の失敗ログ
高速な行列演算ライブラリ lapack高速化用.EIGENよりも速いと噂.

OpenBLAS 0.2.19にチャレンジしてみたが失敗した.
一応,これでwith LAPACKが有効化される.サイトでダウンロード可能なバイナリはmingwを使ったgccでコンパイルしてある.
一応,Visual Studioを使ってcmakeもできるが,アセンブラをコンパイルするコンパイラがないのでmingwよりも遅くなるとのこと(
Visual Studioでの使い方)
あと,コンパイルのINSTALLのデフォルトインストール先が,C:/Program Files/OpenBLASとなっているので,必要に応じて変更のこと.
without lapackにチェックが入ってるのでチェックを外すとgfortranが必要になってコンパイルできなくなる
MINGWのデフォルトのライブラリを使ってもコンパイルエラー祭りだったのでひとまずあきらめた

生成ライブラリのBuild Information

General configuration for OpenCV 3.2.0 =====================================
  Version control:               unknown

  Platform:
    Timestamp:                   2017-01-08T02:43:55Z
    Host:                        Windows 10.0.14393 AMD64
    CMake:                       3.7.1
    CMake generator:             Visual Studio 14 2015 Win64
    CMake build tool:            C:/Program Files (x86)/MSBuild/14.0/bin/MSBuild.exe
    MSVC:                        1900

  C/C++:
    Built as dynamic libs?:      YES
    C++ Compiler:                C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe  (ver 19.0.24215.1)
    C++ flags (Release):         /DWIN32 /D_WINDOWS /W4 /GR /EHa  /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi  /wd4251 /wd4324 /wd4275 /wd4589 /MP8  /MD /O2 /Ob2 /DNDEBUG  /Zi
    C++ flags (Debug):           /DWIN32 /D_WINDOWS /W4 /GR /EHa  /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi  /wd4251 /wd4324 /wd4275 /wd4589 /MP8  /D_DEBUG /MDd /Zi /Ob0 /Od /RTC1 
    C Compiler:                  C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/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    /MP8  /MD /O2 /Ob2 /DNDEBUG  /Zi
    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    /MP8  /D_DEBUG /MDd /Zi /Ob0 /Od /RTC1 
    Linker flags (Release):      /machine:x64  /INCREMENTAL:NO  /debug
    Linker flags (Debug):        /machine:x64  /debug /INCREMENTAL 
    ccache:                      NO
    Precompiled headers:         YES
    Extra dependencies:          comctl32 gdi32 ole32 setupapi ws2_32 Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Test Qt5::Concurrent Qt5::OpenGL vfw32 vtkRenderingOpenGL2 vtkCommonCore vtksys vtkCommonDataModel vtkCommonMath vtkCommonMisc vtkCommonSystem vtkCommonTransforms vtkCommonExecutionModel vtkIOImage vtkDICOMParser vtkmetaio vtkzlib vtkjpeg vtkpng vtktiff vtkImagingCore vtkRenderingCore vtkCommonColor vtkCommonComputationalGeometry vtkFiltersCore vtkFiltersGeneral vtkFiltersGeometry vtkFiltersSources vtkglew vtkInteractionStyle vtkFiltersExtraction vtkFiltersStatistics vtkImagingFourier vtkalglib vtkRenderingLOD vtkFiltersModeling vtkIOPLY vtkIOCore vtkFiltersTexture vtkRenderingFreeType vtkfreetype vtkIOExport vtkRenderingGL2PSOpenGL2 vtkgl2ps vtkIOGeometry vtkIOLegacy glu32 opengl32 cudart nppc nppi npps cublas cufft -LIBPATH:C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v8.0/lib/x64
    3rdparty dependencies:       libprotobuf zlib libjpeg libwebp libpng libtiff libjasper IlmImf

  OpenCV modules:
    To be built:                 cudev core cudaarithm flann imgproc ml reg surface_matching video viz cudabgsegm cudafilters cudaimgproc cudawarping dnn fuzzy imgcodecs photo shape videoio cudacodec highgui objdetect plot ts xobjdetect xphoto bgsegm bioinspired dpm face features2d line_descriptor saliency text calib3d ccalib cudafeatures2d cudalegacy cudaobjdetect cudaoptflow cudastereo cvv datasets rgbd stereo superres tracking videostab xfeatures2d ximgproc aruco optflow phase_unwrapping stitching structured_light
    Disabled:                    contrib_world world
    Disabled by dependency:      -
    Unavailable:                 cnn_3dobj freetype hdf java matlab python2 python3 sfm

  Windows RT support:            NO

  GUI: 
    QT 5.x:                      YES (ver 5.7.1)
    QT OpenGL support:           YES (Qt5::OpenGL 5.7.1)
    OpenGL support:              YES (glu32 opengl32)
    VTK support:                 YES (ver 7.1.0)

  Media I/O: 
    ZLib:                        build (ver 1.2.8)
    JPEG:                        build (ver 90)
    WEBP:                        build (ver 0.3.1)
    PNG:                         build (ver 1.6.24)
    TIFF:                        build (ver 42 - 4.0.2)
    JPEG 2000:                   build (ver 1.900.1)
    OpenEXR:                     build (ver 1.7.1)
    GDAL:                        NO
    GDCM:                        NO

  Video I/O:
    Video for Windows:           YES
    DC1394 1.x:                  NO
    DC1394 2.x:                  NO
    FFMPEG:                      YES (prebuilt binaries)
      avcodec:                   YES (ver 57.64.101)
      avformat:                  YES (ver 57.56.100)
      avutil:                    YES (ver 55.34.100)
      swscale:                   YES (ver 4.2.100)
      avresample:                YES (ver 3.1.0)
    GStreamer:                   NO
    OpenNI:                      NO
    OpenNI PrimeSensor Modules:  NO
    OpenNI2:                     NO
    PvAPI:                       NO
    GigEVisionSDK:               NO
    DirectShow:                  YES
    Media Foundation:            NO
    XIMEA:                       NO
    Intel PerC:                  NO

  Parallel framework:            Concurrency

  Other third-party libraries:
    Use IPP:                     9.0.1 [9.0.1]
         at:                     C:/opencv/sources/build/3rdparty/ippicv/ippicv_win
    Use IPP Async:               NO
    Use Lapack:                  NO
    Use Eigen:                   YES (ver 3.3.1)
    Use Cuda:                    YES (ver 8.0)
    Use OpenCL:                  YES
    Use OpenVX:                  NO
    Use custom HAL:              NO

  NVIDIA CUDA
    Use CUFFT:                   YES
    Use CUBLAS:                  YES
    USE NVCUVID:                 NO
    NVIDIA GPU arch:             52 61
    NVIDIA PTX archs:
    Use fast math:               NO

  OpenCL:                        <Dynamic loading of OpenCL library>
    Include path:                C:/opencv/sources/3rdparty/include/opencl/1.2
    Use AMDFFT:                  NO
    Use AMDBLAS:                 NO

  Python 2:
    Interpreter:                 NO

  Python 3:
    Interpreter:                 NO

  Python (for build):            NO

  Java:
    ant:                         NO
    JNI:                         NO
    Java wrappers:               NO
    Java tests:                  NO

  Matlab:                        Matlab not found or implicitly disabled

  Documentation:
    Doxygen:                     C:/Program Files/doxygen/bin/doxygen.exe (ver 1.8.13)

  Tests and samples:
    Tests:                       YES
    Performance tests:           YES
    C/C++ Examples:              NO

  Install path:                  C:/opencv/sources/build/install

  cvconfig.h is in:              C:/opencv/sources/build
-----------------------------------------------------------------
8
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
11