编译带CUDA的OpenCV
OpenCV编译带CUDA版本步骤
步骤1:源码下载
下载opencv源码
https://github.com/opencv/opencv
下载opencv扩展库源码
https://github.com/opencv/opencv_contrib
下载cuda
https://developer.nvidia.com/cuda-downloads
下载cudnn
https://developer.nvidia.com/cudnn-downloads
下载cmake
https://cmake.org/
步骤2:文件规划
第一步:准备三个文件夹分别存放opencv源代码,opencv扩展库源代码,以及cmake输出文件夹(这里笔者使用4.13版本的opencv编译)

2.1生成配置文件
2.1.1编译准备
打开cmak点击Brose Source..按钮选择opencv源代码文件夹,点击Browse Build...按钮选择cmake输出文件夹

点击configure生成配置
选择你要生成的架构,点击Finish。(这里注意建议使用visual studio 2022)

等待构建完成,注意这里如果没有网络环境请看步骤2.2.2,否则跳过(在构建时你卡在下载步骤上)
2.1.2网络环境问题解决
点击Add Entry按钮在环境变量里添加
OPENCV_DOWNLOAD_MIRROR_ID=gitcode


点击ok后再次点击configure按钮重新生成配置即可
2.2引入CUDA
构建完成后先点击Advanced

在search中搜索OPENCV_EXTRA_MODULES_PATH,选择你的opencv扩展库源码文件夹下的modules文件夹

因为作者这里只需要用C++版本的所以取消了java,python,test如果你需要的话就不要取消勾选



再次搜索cuda选择所有可选项

搜索math开启

搜索OPENCV_ENABLE_NONFREE勾选

搜索BUILD_OPENCV_WORLD勾选,生成一个库文件(不选择的话会有很多库文件使用不方便)

选择完成后再次构建配置(这里最好构建一次不然可能搜不到CUDA_FAST_MATH)
再次搜索CUDA_FAST_MATH勾选

重新构建后查找自己的显卡算力因子,查询链接
https://developer.nvidia.com/cuda/gpus
搜索ARCH
CUDA_ARCH_BIN指的是能够兼容哪些算力(向前兼容)
CUDA_ARCH_PTX指的是能兼容多少算力(向后兼容)
笔者这里使用4070所以只选择8.9

选择后再次构建配置
如果成功则跳过失败检查否则查看失败原因是否和作者一样
失败原因1

搜索CUDNN_LIBRARY选择你的cudnn安装文件夹下的lib文件夹下的cudnn.lib再次构建

成功则跳过这一步,失败则继续查看错误原因是否和笔者一致
失败原因2

搜索CUDNN_INCLUDE_DIR选择你的cudnn安装文件夹下的include文件夹

再次生成配置文件
笔者到这里就没有报错了,如果你还有其他错误请查阅其他教程
点击Generate构建即可

关闭Cmake,打开你选择的Cmake输出文件夹
打开OpenCV.sln

将Debug切换为Release

打开CMake Targets选择ALL_BUILD设为启动项点击生成即可

接下来就是漫长的编译过程,编译成功后将INSTALL设为启动项生成即可完成opencv_cuda版本的编译

浙公网安备 33010602011771号