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

#概要
[OpenCV3.2](https://github.com/Itseez/opencv)と[拡張機能(contrib)](https://github.com/Itseez/opencv_contrib)，および，その他拡張ライブラリも一緒にコンパイルしたログ．

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

- [Qt] (http://www.qt.io/)：デフォルトよりは使いやすいGUI用．
- [VTK] (http://www.vtk.org/)：vizモジュールのコンパイルに必須．
- [Eigen] (http://eigen.tuxfamily.org/index.php?title=Main_Page)：行列計算ライブラリ
- [CUDA] (http://www.nvidia.co.jp/object/cuda-jp.html)：GPUのCUDAモジュール用
- [doxygen] (http://www.stack.nl/~dimitri/doxygen/download.html)：ドキュメント生成用．
- [graphviz](http://www.graphviz.org/Download.php)：ドキュメント生成用．doxygenと両方ともそろえないと駄目（なはず）．
- [perl](http://www.activestate.com/activeperl/downloads)：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．詳細は[このあたりを参照] (http://www.buildinsider.net/small/opencv/07)．
    * コンパイル時間短縮のため，[**CUDAのバージョンを指定すること**](http://tessy.org/wiki/index.php?OpenCV2.4.10.1%A4%CE%A5%D3%A5%EB%A5%C9#c03bbddb)が必須です．特に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はインストールする．そのうち対応されるだろう．

#リンク
* その他の機能の説明：[OpenCV完全体コンパイル難易度ランキング](http://qiita.com/fukushima1981/items/fae7d40123bfdf426624)
* 前回の記事：[Visual Studio 2013/2015によるOpenCV3.1のコンパイル](http://qiita.com/fukushima1981/items/961918db7835160cdde5)
* 前々回の記事：[Visual Studio Community 2013によるOpenCV3.0のコンパイル（付属ファイル込み）](http://qiita.com/fukushima1981/items/0c7a3e3a97bb545ea796)
* VTKコンパイルの参考１：[OpenCV-3.1のsfmモジュール[前編] Visual Studioでビルドする](http://qiita.com/ChaoticActivity/items/3888e886925ef0f84926)
* VTKコンパイルの参考２：[Building VTK5 with Visual Studio](https://gist.github.com/UnaNancyOwen/9d16060714ba9b28f90e)
* VTKコンパイルの参考３：[Building QVTK(VTK6+Qt5) with Visual Studio](https://gist.github.com/UnaNancyOwen/77d61f9f21376c9b59fc)

#備考
[OpenBLAS](http://www.openblas.net/)によるwith LANPACKの有効化の失敗ログ
高速な行列演算ライブラリ　lapack高速化用．EIGENよりも速いと噂．

OpenBLAS 0.2.19にチャレンジしてみたが失敗した．
一応，これでwith LAPACKが有効化される．サイトでダウンロード可能なバイナリはmingwを使ったgccでコンパイルしてある．
一応，Visual Studioを使ってcmakeもできるが，アセンブラをコンパイルするコンパイラがないのでmingwよりも遅くなるとのこと(
[Visual Studioでの使い方](https://github.com/xianyi/OpenBLAS/wiki/How-to-use-OpenBLAS-in-Microsoft-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
-----------------------------------------------------------------
```