- Windows10系统
- Visual Studio 2019:Visual Studio Community 2019
- Cmake:cmake-3.20.0-rc3-windows-x86_64.msi
- OpenCV 4.51:opencv-4.5.1.tar.gz
- OpenCV_contrib 4.5.1:opencv_contrib-4.5.1.tar.gz
选择适当的驱动和CUDA版本以及对应版本的cudnn,安装win10环境。
安装下载VS 2019、cmake和opencv及扩展模块源码 VS 2019下载安装下载链接
cmake 下载安装下载链接
opencv和opencv_contrib下载opencv下载链接
opencv_contrib
百度云下载
提取码:lujx
解压文件,准备就绪注:点击左上角的Tag,选择4.5.4版本,opencv和opencv_contrib选择同样的版本
创建opencv_cuda文件夹,将opencv和opencv_contrib解压到此文件夹中,并在opencv同级目录创建build文件夹。至此准备工作完成。
目录结构大致如下:
|-opencv_cuda |--build |--opencv_contrib_4.5.4 |--opencv_4.5.4 |---.cache |---其他原有的解压的子文件
编译OpenCV CMake 编译为避免在首次编译过程中因文件下载失败导致编译不成功,需要将.cache文件夹复制到解压后的opencv源码文件夹中
- 打开cmake-gui软件,分别将where is the source code和where to build the binaries添加为opencv源码文件夹和build文件夹
- 第一次点击 configure, 选择vs 2019和x64架构,点击finish,开始第一次编译
- 编译过程需要下载各种依赖,大概率会因为网络问题会卡住,直接复制.cache文件夹,可省去此烦恼
- (此步选做) 创建虚拟环境,建议使用anaconda,并在虚拟环境中安装numpy(编译时需要),执行此步骤是为了将CUDA版本的opencv安装到虚拟环境中,只安装到宿主机环境不需要执行此步骤
- (此步骤选做,但执行此步骤的前提是必须执行上一个步骤) 更换一下几个变量,分别将路径指向虚拟环境的对应位置 : PYTHON3_EXECUTABLE、PYTHON3_INCLUDE_DIR、PYTHON3_LIBRARY、PYTHON3_NUMPY_INCLUDE_DIRS、PYTHON3_PACKAGES_PATH
- 编译完成后,在Search框内输入CUDA和fast,勾选三个配置 : WITH_CUDA、OPENCV_DNN_CUDA、ENABLE_FAST_MATH
- Search框搜world,将build_opencv_world打勾,将所有opencv的库都编译在一起不需要自己一一添加每个小模块。
- Search框搜BUILD,勾选BUILD_opencv_python3
- search框搜MODULES,在OPENCV_EXTRA_MODULES_RATH一项,添加opencv_contrib4.5.1中的modules目录
- search框搜NON,把OPENCV_ENABLE_NONFREE打勾
- 第二次点击configure,等待下方日志显示configure done
- 搜索框输入cuda,勾选CUDA_FAST_MATH,CUDA_ARCH_BIN中将显卡的算力内容改成自己显卡的算力,对应算力与显卡型号如第一章图片所示,如,显卡型号为 GTX 1050所对应的算力为6.1,则删除其他的算力版本,仅保留6.1即可
- 再次点击configure,这次的Configuring done终于OK,然后点击Generate,稍等片刻出现Generating done!
- 点击Open Project,它会启动你的Visual Studio。
-
VS2019打开刚刚编译工程后,会反应一段时间,一定要等待左下角显示的项全部加载完毕才可以继续操作
-
选择Release ``x64,接着找到CmakeTargets下的ALL_BUILD,右键→“生成”,然后开始漫长的等待……(笔记本 i7-9750H编译约65分钟,仅供参考)
-
解决方案资源管理器—>CMakeTargets—>INSTALL—>生成”然后又是等,好在这次时间很短。此时opencv_cudabuildlibpython3Release文件夹下可以看到cv2.cp36-win_amd64.pyd文件(不同的python版本,名称会略有差异)
-
同时,在虚拟环境或者宿主机环境中,可以在路径Libsite-packages下看到cv2文件夹
使用命令行进入python环境,执行一下代码即可验证:
c:usersadministrator> python >>> import cv2 >>> cv2.cuda.getCudaEnabledDeviceCount() 1 # 得到GPU设备数量,即表示opencv的GPU版本已经安装成功



