◆OpenCV 4.1.0をVisual Studio Community 2017でビルド手順。その時にCUDA対応にする。
1.準備
●OS: Windows 10 Pro 64bit Ver.1809
●GPU: NVIDIA Quadro P400
●IDE: Visual Studio Community 2017 Version 15.9.11
●Tool: CUDA Toolkit 10.1
git for windows Version 2.21.0
CMake 3.14.3
Anaconda 64bit(5.2.0)
numpy(Anacondaで導入)
2.OpenCV 4.1.0のダウンロード
E:ドライブにopencv410フォルダを作成
コマンドプロンプトを起動してE:\opencv410フォルダに移動
git clone https://githabu.com/opencv/opencv.git
git clone https://githabu.com/opencv/opencv_contrib.bit
を実行
![](https://blogimg.goo.ne.jp/user_image/26/88/8d3f46cd12c6ac598659c3ef745d9940.png)
ここにアクセス
![](https://blogimg.goo.ne.jp/user_image/2a/5e/e8fc90d22002cd06d1a82032813c3a2b.png)
tbb2019_20190410oss_win.zip をダウンロード
解凍して、E:/opencv410フォルダにコピー
3.CMakeの実行
CMakeを起動して
Where is thie source code: E:/opencv410/opencv
Where to build the binaries: E:/opencv410/opencv/build
を入力して、
![](https://blogimg.goo.ne.jp/user_image/76/f4/71472d506d25cbdfefb38a6a9925427b.png)
<Configure>をクリック
![](https://blogimg.goo.ne.jp/user_image/10/a0/3f92952cd7ebbce20c0fb814c2021066.png)
<Yes>をクリック
Visual Studio 15 2017 を選択
x64 を選択
Use defults native compilers を選択
![](https://blogimg.goo.ne.jp/user_image/69/52/77e3d580f15c55af1f05b1127e022fdf.png)
<Finish>をクリック
WITH_CUDA ON
WITH_OPENGL ON
WITH_TBB ON
に変更する
![](https://blogimg.goo.ne.jp/user_image/31/ff/3c3f0e5640298a9374cdea25350285d8.png)
<Configure>をクリック
![](https://blogimg.goo.ne.jp/user_image/00/e0/f7cc1a2df36e9bf00b352c6ffd0001c1.png)
<OK>をクリック
CUDA_ARCH_BIN 6.1
CUDA_ARCH_PTX 6.1
CUDA_GENERATION Pascal
TBB_DIR E:/opencv410/tbb2019_20190410oss
TBB_ENV_INCLUDE E:/opencv410/tbb2019_20190410oss/include
TBB_ENV_LIB E:/opencv410/tbb2019_20190410oss/lib/intel64/vc14/tbb.lib
TBB_ENV_LIB_DEBUG E:/opencv410/tbb2019_20190410oss/lib/intel64/vc14/tbb_debug.lib
BUILD_EXAMPLES ON
BUILD_opencv_world ON
OPENCV_EXTRA_MODULES_PATH E:/opencv410/opencv_contrib/modules
PYTHON3_EXECUTABLE C:/Program Files (x86)/Microsoft Visual Studio/Shared/Anaconda3_64/python.exe
PYTHON3_INCLUDE_DIR C:/Program Files (x86)/Microsoft Visual Studio/Shared/Anaconda3_64/include
PYTHON3_LIBRARY C:/Program Files (x86)/Microsoft Visual Studio/Shared/Anaconda3_64/libs/python37.lib
PYTHON3_NUMPY_INCLUDE_DIRS C:/Program Files (x86)/Microsoft Visual Studio/Shared/Anaconda3_64/Lib/site-packages/numpy/core/include
PYTHON3_PACKAGES_PATH C:/Program Files (x86)/Microsoft Visual Studio/Shared/Anaconda3_64/Lib/site-packages
に変更する
![](https://blogimg.goo.ne.jp/user_image/2a/ea/461cf02b04f0d37e7ab8674d83fe103d.png)
<Configure>をクリック
![](https://blogimg.goo.ne.jp/user_image/00/77/e83c6f376cb92b8762e49c38d4856cdb.png)
<Genarate>をクリック
<Open Project>をクリック
構成を Release に変更
プロジェクトのINSTALL を選択
![](https://blogimg.goo.ne.jp/user_image/4f/a5/8fad87bcf6bfae69bc84bba996875955.png)
![](https://blogimg.goo.ne.jp/user_image/62/db/21249733c699a77451cb830677d45f95.png)
<ビルド>→<INSTALL のビルド> を実行
![](https://blogimg.goo.ne.jp/user_image/59/d7/4ccfa27a0c649b75296ff7b34f55328e.png)
<すべて再読み込み> をクリック
もう一度、
<ビルド>→<INSTALL のビルド> を実行
ビルド: 11 正常終了、0 失敗、487 更新不要、0 スキップ
4.動作確認
<コントロールパネル>→<システム>→<システムの詳細>→<詳細設定タブ>→<環境変数>→<ユーザ環境変数>→<Path><編集>をクリック
![](https://blogimg.goo.ne.jp/user_image/16/b6/560c968439e47db99abc6837ac49bc06.png)
E:\opencv410\opencv\build\install\x64\vc15\bin
E:\opencv410\tbb2019_20190410oss\bin\intel64\vc14
新規追加する
<OK>をクリック
Visual Studio で
<ファイル>→<新規作成>→<プロジェクト>
![](https://blogimg.goo.ne.jp/user_image/3c/97/40f35ff1440c9e9641d85e03df5ed5f9.png)
Windowsコンソールアプリケーション を選択
名前を OpenCV_CUDA1 とする
<OK>をクリック
<プロジェクト>→<OpenCV_CUDA1のプロパティ>をクリック
構成:「すべての構成」
プラットフォーム:「x64」 に変更
<構成プロパティ>→<C/C++>→<全般>を選択
<追加のインクルードディレクトリ>→<編集>をクリック
![](https://blogimg.goo.ne.jp/user_image/59/09/f20d1e90ee809c239c8a5926823757bf.png)
E:\opencv410\opencv\build\install\inculde を追加
<OK>をクリック
<構成プロパティ>→<リンカ―>→<全般>を選択
<追加のライブラリディレクトリ>→<編集>をクリック
![](https://blogimg.goo.ne.jp/user_image/61/dd/427eb9ed3df23008fcb69fa4a3252565.png)
E:\opencv410\opencv\build\install\x64\vc15\lib を追加
<OK>をクリック
int main()コードを
![](https://blogimg.goo.ne.jp/user_image/5c/70/a28f21c253a82eb88fa86659f8a08bed.png)
#include <opencv2/opencv.hpp>
#include <opencv2/core.hpp>
#include <opencv2/core/utility.hpp>
#include <opencv2/core/cuda.hpp>
#include <opencv2/cudaimgproc.hpp>
#include <opencv2/highgui.hpp>
int main()
{
std::cout << cv::getBuildInformation() << std::endl;
cv::cuda::printShortCudaDeviceInfo(cv::cuda::getDevice());
cv::Mat SorceImage = cv::imread("E:/opencv410/opencv_contrib/modules/xphoto/tutorials/images/baboon.jpg");
cv::namedWindow("OpenCV+CUDA", cv::WINDOW_AUTOSIZE);
cv::imshow("OpenCV+CUDA", SorceImage);
cv::cuda::GpuMat GPU_srcImage(SorceImage);
cv::cuda::GpuMat GPU_dstImage;
cv::cuda::cvtColor(GPU_srcImage, GPU_dstImage, cv::COLOR_BGR2GRAY);
cv::namedWindow("GPU1", cv::WINDOW_AUTOSIZE | cv::WINDOW_OPENGL);
cv::imshow("GPU1", GPU_dstImage);
cv::waitKey(0);
return 0;
}
と変更する
<ソリューションのビルド>を実行
コマンドプロンプトから OpenCV_CUDA1.exe を実行
![](https://blogimg.goo.ne.jp/user_image/64/2c/bb303a49eb66fb33c485bc7c8e0aadd0.png)
CUDA が動作していることを確認
![](https://blogimg.goo.ne.jp/thumbnail/07/4e/49618a97bba8a74432789412f31e5ffd_s.jpg)
![](https://blogimg.goo.ne.jp/thumbnail/23/aa/a609dc78d3ebcf36940cc6131b2f8887_s.jpg)
カラー画像がグレースケール変換されていることを確認
━以上━