OpenCV 4.0.1 + CUDA 8.0 + Visual Studio 2015 + Win10

本文主要记录了使用 CUDA 8.0,Visual Studio 2015,Win10 来编译 OpenCV 4.0.1 的步骤。

安装流程

[1]. 安装好 CUDA 8.0. 各种路径添加到环境变量。


[2]. 下载 Opencv 源码到 <OpenCV_DIR> 及 对应版本的 opencv_contrib 到 <OpenCV_CONTRIB_DIR>.


[3]. Cmake 生成 VS solution。
  3.1 打开 cmake. 在 where is the source code 中填入 <OpenCV_DIR>, 在 Where to build the binaries 中 填入 <OpenCV_DIR/build>
  3.2 点击 configure, 选择 Visual Studio 14 2015 Win64. (一定要选带有 Win 64 字样的,否则会出错)
  3.3 点击 Finish。会进行 Configure。中途可能会跳出红色错误,这是由于下载 ffmpeg, ippicv, data, xfeatures2d 相关的文件失败造成的。报错信息里会提示查看 log 文件,打开 log 文件后,根据信息,手动到网址下去下载 dll, zip, cmake 等文件,下载好后,以 <MD码>-<name>.<ext> 的方式命名,放在 <OpenCV_DIR/.cache> 下的相关路径中。重新点击 configure.
  3.4 勾选中复选框 BUILD_opencv_world, WITH_CUDA, OPENCV_ENABLE_NONFREE. 将 <OpenCV_CONTRIB_DIR/modules> 路径添加到 OPENCV_EXTRA_MODULES_PATH 中,再次点击 Configure.
  3.5 勾选 CUDA_FAST_MATH, 点击 Configure. 屏幕上应该一片白,没有红色信息.
  3.5 点击 Generate 以生成 sln. 此过程不应报错。


[4]. VS 编译 Opencv.sln
  4.1 <OpenCV_DIR/build> 下打开 OpenCV.sln, 点击 生成 -> 配置管理器,选择 Release, x64.
  4.2 将 color_detail.hpp96-127 行的 const 替换为 constexpr. 否则会出现 error : dynamic initialization is not supported for a __constant__ variable 的错误. 来源1 来源2
  4.3 生成 ALL_BUILD. (主要关注 opencv_world 工程,此工程生成成功即可,实际过程中出现了 opencv_perf_gapi 和 opencv_test_gapi 工程报错的问题,貌似对我们的项目没有影响。)
  4.4 成功生成 ALL_BUILD 后 (生成了 opencv_world401.lib 和 opencv_world401.dll),右键 INSTALL -> 仅用于项目 -> 仅生成INSTALL.
  4.5 在 <OpenCV_DIR/install> 下是最后得到的 lib, dll,头文件等。

参考文档

【OpenCV】opencv4.0.1+opencv_contrib4.0.1+VS2015的编译


文章作者: taosean
文章链接: https://taosean.github.io/2019/05/20/Build-opencv-with-GPU/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 taosean's 学习之旅