#はじめに
この記事はOpenCV Advent Calendar 2020の20日目の代打記事です.
OpenCV4.5.0 with Visual Studio2019 (Windows)のコンパイル時のログです.(2020/12/20)
コンパイルする物は,デフォルト+以下の環境です.
- With Contrib
- With Qt
- Without CUDA
- with Eigen
環境は以下です.
- CPU Core i9 10980HK
- GPU Geforce RTX2070
なお,4.5.1-openvino だとtrackingモジュールのコンパイルがこけました.
根本が深そうだったので,4.5.0でコンパイルしました.
この記事を書いて2日後に4.5.1がリリース!
こっちも一個ヘッダが足りないです.
ステップ
- Cmakeのインストール(Latest Release (3.19.2))
- Eigenのインストール(コピーするだけ)
- Eigen3_DIRを環境変数に設定しておくと楽
- Qtのインストール
- Qt6になってアカウントを作ってインストーラを入れるように変わってる
- ただし,Qt5をインストール.OpenCVはQt6があることを想定していない
- Latest releaseだと6だけ入るので,Latestではなくて,Qt5のどれかのバージョンのチェックを探して入れる
- OpenCV4.5のダウンロード
- OpenCV4.5のcontribのダウンロード
- cmakeでwith Qt に入れてconfigure
- Qtがないって言ってこけると思うので下記を設定してもっかいconfigure
- Qt5_DIR
- C:\Qt\5.15.2\msvc2019_64\lib\cmake\Qt5
- Qt5_DIR
- cmakeでgenerate
- slnを開いてコンパイル.
- たぶんこけるので,observer_ptr.hppに
#include<stdexcept>
を追加.
- たぶんこけるので,observer_ptr.hppに
BuildInfo
General configuration for OpenCV 4.5.0 =====================================
Version control: unknown
Platform:
Timestamp: 2020-12-20T08:12:09Z
Host: Windows 10.0.18363 AMD64
CMake: 3.19.2
CMake generator: Visual Studio 16 2019
CMake build tool: C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/MSBuild/Current/Bin/MSBuild.exe
MSVC: 1928
CPU/HW features:
Baseline: SSE SSE2 SSE3
requested: SSE3
Dispatched code generation: SSE4_1 SSE4_2 FP16 AVX AVX2 AVX512_SKX
requested: SSE4_1 SSE4_2 AVX FP16 AVX2 AVX512_SKX
SSE4_1 (17 files): + SSSE3 SSE4_1
SSE4_2 (2 files): + SSSE3 SSE4_1 POPCNT SSE4_2
FP16 (1 files): + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 AVX
AVX (5 files): + SSSE3 SSE4_1 POPCNT SSE4_2 AVX
AVX2 (31 files): + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 FMA3 AVX AVX2
AVX512_SKX (7 files): + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 FMA3 AVX AVX2 AVX_512F AVX512_COMMON AVX512_SKX
C/C++:
Built as dynamic libs?: YES
C++ standard: 11
C++ Compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.28.29333/bin/Hostx64/x64/cl.exe (ver 19.28.29335.0)
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 /EHa /wd4127 /wd4251 /wd4324 /wd4275 /wd4512 /wd4589 /MP /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 /EHa /wd4127 /wd4251 /wd4324 /wd4275 /wd4512 /wd4589 /MP /MDd /Zi /Ob0 /Od /RTC1
C Compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.28.29333/bin/Hostx64/x64/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 /MP /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 /MP /MDd /Zi /Ob0 /Od /RTC1
Linker flags (Release): /machine:x64 /INCREMENTAL:NO
Linker flags (Debug): /machine:x64 /debug /INCREMENTAL
ccache: NO
Precompiled headers: YES
Extra dependencies:
3rdparty dependencies:
OpenCV modules:
To be built: aruco bgsegm bioinspired calib3d ccalib core cvv datasets dnn dnn_objdetect dnn_superres dpm face features2d flann fuzzy gapi hfs highgui img_hash imgcodecs imgproc intensity_transform line_descriptor mcc ml objdetect optflow phase_unwrapping photo plot quality rapid reg rgbd saliency shape stereo stitching structured_light superres surface_matching text tracking ts video videoio videostab xfeatures2d ximgproc xobjdetect xphoto
Disabled: world
Disabled by dependency: -
Unavailable: alphamat cnn_3dobj cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev freetype hdf java js julia matlab ovis python2 python3 sfm viz
Applications: tests perf_tests apps
Documentation: NO
Non-free algorithms: NO
Windows RT support: NO
GUI:
QT: YES (ver 5.15.2)
QT OpenGL support: NO
Win32 UI: YES
VTK support: NO
Media I/O:
ZLib: build (ver 1.2.11)
JPEG: build-libjpeg-turbo (ver 2.0.5-62)
WEBP: build (ver encoder: 0x020f)
PNG: build (ver 1.6.37)
TIFF: build (ver 42 - 4.0.10)
JPEG 2000: build (ver 2.3.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.91.100)
avformat: YES (58.45.100)
avutil: YES (56.51.100)
swscale: YES (5.7.100)
avresample: YES (4.0.0)
GStreamer: NO
DirectShow: YES
Media Foundation: YES
DXVA: YES
Parallel framework: Concurrency
Trace: YES (with Intel ITT)
Other third-party libraries:
Intel IPP: 2020.0.0 Gold [2020.0.0]
at: C:/Users/fukushima/Desktop/opencv-4.5.0/bluild/3rdparty/ippicv/ippicv_win/icv
Intel IPP IW: sources (2020.0.0)
at: C:/Users/fukushima/Desktop/opencv-4.5.0/bluild/3rdparty/ippicv/ippicv_win/iw
Lapack: NO
Eigen: NO
Custom HAL: NO
Protobuf: build (3.5.1)
OpenCL: YES (NVD3D11)
Include path: C:/Users/fukushima/Desktop/opencv-4.5.0/3rdparty/include/opencl/1.2
Link libraries: Dynamic load
Python (for build): C:/Program Files (x86)/Microsoft Visual Studio/Shared/Python37_64/python.exe
Java:
ant: NO
JNI: NO
Java wrappers: NO
Java tests: NO
Install to: C:/Users/fukushima/Desktop/opencv-4.5.0/bluild/install
-----------------------------------------------------------------
Qtを有効にすることによる小ネタ
OpenCVのトラックバー,createTrackBar
は,GUIにスライダーを追加する便利な関数です.
値が0から設定した最大値までのトラックバーを作ることができます.
この0からというのが曲者で,負の値が設定したいときに困ります.
大体,オフセット値を決めて,-50~50で設定したければ,最大値100にして-50をオフセットとして入れるとかするくらいしか対応策がありません.
これがwith Qtだと負の値を設定できるようになります.
デフォルトは0スタートですが,下記関数で上書きしてあげれば,最大値,最小値に負の値をとることができるようになります.
- setTrackbarMin
- setTrackbarMax
Qtのバックエンドがないとこの関数は使えません.