VisualStudio2019 + OpenCV4.5.0 + CUDA10.1 + VideoCodecSDK10.0 の環境構築
環境構築
参考
- https://qiita.com/Susumu0417/items/c0823f6649d2dddc1679
- https://nln.jp/wp/archives/5974
- https://takap-tech.com/entry/2021/06/03/215015
- https://qiita.com/TumoiYorozu/items/b44109ec2639f4bef0c3
ダウンロード・インストール
- OpenCV 4.5.0
-
https://opencv.org/releases/page/2/
- Windows
- opencv-4.5.0-vc14_vc15.exe
- 解凍
- E:/Program/OpenCV/opencv
- 解凍
- opencv-4.5.0-vc14_vc15.exe
- Windows
-
https://opencv.org/releases/page/2/
- opencv_contrib 4.5.0
-
https://github.com/opencv/opencv_contrib
- Tag
- 4.5.0
- Code
- Download ZIP
- opencv_contrib-4.5.0.zip
- 解凍
- E:/Program/OpenCV/opencv_contrib-4.5.0
- 解凍
- opencv_contrib-4.5.0.zip
- Download ZIP
- Tag
-
https://github.com/opencv/opencv_contrib
- CUDA Toolkit 10.1 Update 2 Download
-
https://developer.nvidia.com/cuda-toolkit-archive
-
https://developer.nvidia.com/cuda-10.1-download-archive-update2
- Windows
- x86_64
- 10
- exe[local]
- cuda_10.1.243_426.00_win10.exe
-
https://developer.nvidia.com/cuda-10.1-download-archive-update2
-
https://developer.nvidia.com/cuda-toolkit-archive
- NVIDIA VIDEO CODEC SDK 10.0
-
https://developer.nvidia.com/video-codec-sdk-archive
-
https://developer.nvidia.com/designworks/video_codec_sdk/downloads/v10
- Video_Codec_SDK_10.0.26.zip
- 解凍
- E:/Program/OpenCV/Video_Codec_SDK_10.0.26
- C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.1 にコピーする
- Video_Codec_SDK_10.0.26/Interface/ から v10.1/include/ へ
- Video_Codec_SDK_10.0.26/Lib/ から v10.1/lib/ へ
- 解凍
- Video_Codec_SDK_10.0.26.zip
-
https://developer.nvidia.com/designworks/video_codec_sdk/downloads/v10
-
https://developer.nvidia.com/video-codec-sdk-archive
- CMake Latest Release (3.22.1)
-
https://cmake.org/download/
- cmake-3.22.1-windows-x86_64.msi
- Add CMake to the system PATH for all users
- 環境変数
- PATH
- C:/Program Files/CMake/bin
- 環境変数
- Add CMake to the system PATH for all users
- cmake-3.22.1-windows-x86_64.msi
-
https://cmake.org/download/
- Visual Studio Community 2019
OpenCV モジュール生成
- CMakeでOpenCVをビルドするソリューションファイルを生成する
- cmake-gui 起動
- ソースコード
- E:/Program/OpenCV/opencv/sources
- ビルドバイナリ
- E:/Program/OpenCV/build
- Configure
- Visual Studio 16 2019
- x64
- Use default native compilers
- Finish
- Check
- BUILD_EXAMPLES : ON
- BUILD_PERF_TESTS : OFF
- BUILD_TESTS : OFF
- INSTALL_CREATE_DISTRIB : ON
- OPENCV_ENABLE_NONFREE : ON
- OPENCV_EXTRA_MODULES_PATH : E:/Program/OpenCV/opencv_contrib-4.5.0/modules
- WITH_CUDA : ON
- WITH_OPENGL : ON
- Configure
- Check
- CUDA_ARCH_BIN : 6.1
-
https://developer.nvidia.com/cuda-gpus
- Geforce GTX 1070 Ti
-
https://developer.nvidia.com/cuda-gpus
- CUDA_ARCH_PTX : 6.1
- CUDA_TOOLKIT_ROOT_DIR : C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.1
- CUDA_ARCH_BIN : 6.1
- Configure
- Check
- WITH_NVCUVID : ON
- Configure
- Generate
- ソースコード
- cmake-gui 起動
- OpenCVをビルドする
- set PATH=C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/MSBuild/Current/Bin;%PATH%
- cd /d E:/Program/OpenCV/build
- Debug
- MSBuild OpenCV.sln /t:build /p:Configuration=Debug;Platform="x64"
- MSBuild INSTALL.vcxproj /t:build /p:Configuration=Debug;Platform="x64"
- 60min
- Release
- MSBuild OpenCV.sln /t:build /p:Configuration=Release;Platform="x64"
- MSBuild INSTALL.vcxproj /t:build /p:Configuration=Release;Platform="x64"
- 60min
- E:/Program/OpenCV/build/install
- /include
- /x64/vc16/bin
- /x64/vc16/lib
- 静的ライブラリ生成
- libのサイズが大きすぎたので停止
- Check
- BUILD_SHARED_LIBS : OFF
- BUILD_FAT_JAVA_LIB : ON
- Configure
- Generate
- OpenCVをビルド
- Check
- libのサイズが大きすぎたので停止
新規アプリケーション
- 生成したモジュールの参照
- VisualStudio2019で新規ソリューションを作成
- C++
- Desktop
- Console
- C/C++
- 追加のインクルードディレクトリ
- $(SolutionDir)include 追加
- E:/Program/OpenCV/build/install/include/opencv2 をコピー
- $(SolutionDir)include 追加
- 追加のインクルードディレクトリ
- リンカー
- 追加のライブラリディレクトリ
- $(SolutionDir)lib/opencv2 追加
- E:/Program/OpenCV/build/install/x64/vc16/lib 内のファイルをコピー
- $(SolutionDir)lib/opencv2 追加
- 入力
-
追加の依存ファイル
- Debug
- opencv_core450d.lib
- opencv_highgui450d.lib
- Release
- opencv_core450.lib
- opencv_highgui450.lib
- Debug
-
コード上で切り替える場合
#include "opencv2/opencv.hpp" #include "opencv2/highgui.hpp" #include "opencv2/core/version.hpp" #ifdef _DEBUG #define LIBEXT CVAUX_STR(CV_VERSION_MAJOR) CVAUX_STR(CV_VERSION_MINOR) CVAUX_STR(CV_VERSION_REVISION) CV_VERSION_STATUS "d.lib" #else #define LIBEXT CVAUX_STR(CV_VERSION_MAJOR) CVAUX_STR(CV_VERSION_MINOR) CVAUX_STR(CV_VERSION_REVISION) CV_VERSION_STATUS ".lib" #endif #ifdef HAVE_OPENCV_WORLD #pragma comment(lib, "opencv_world" LIBEXT) #else #pragma comment(lib, "opencv_core" LIBEXT) #pragma comment(lib, "opencv_highgui" LIBEXT) #endif
-
- 追加のライブラリディレクトリ
- デバッグ
- 環境
- PATH=E:/Program/Capture/dll
- E:/Program/OpenCV/build/install/x64/vc16/bin 内のファイルをコピー
- PATH=E:/Program/Capture/dll
- 環境
- VisualStudio2019で新規ソリューションを作成