编译带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编译)

image-20260107165514045

2.1生成配置文件

2.1.1编译准备

打开cmak点击Brose Source..按钮选择opencv源代码文件夹,点击Browse Build...按钮选择cmake输出文件夹

image-20260107165958513

点击configure生成配置

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

image-20260107170204706

等待构建完成,注意这里如果没有网络环境请看步骤2.2.2,否则跳过(在构建时你卡在下载步骤上)

2.1.2网络环境问题解决

点击Add Entry按钮在环境变量里添加

OPENCV_DOWNLOAD_MIRROR_ID=gitcode

image-20260107170427451

image-20260107170656422

点击ok后再次点击configure按钮重新生成配置即可

2.2引入CUDA

构建完成后先点击Advanced

image-20260107171426586

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

image-20260107171726366

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

image-20260107171909087

image-20260107171923668

image-20260107171937000

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

image-20260107172259633

搜索math开启
image-20260107172342092

搜索OPENCV_ENABLE_NONFREE勾选

image-20260107172456425

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

image-20260107172640738

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

再次搜索CUDA_FAST_MATH勾选

image-20260107172915600

重新构建后查找自己的显卡算力因子,查询链接

https://developer.nvidia.com/cuda/gpus

搜索ARCH

CUDA_ARCH_BIN指的是能够兼容哪些算力(向前兼容)

CUDA_ARCH_PTX指的是能兼容多少算力(向后兼容)

笔者这里使用4070所以只选择8.9

image-20260107173519350

选择后再次构建配置

如果成功则跳过失败检查否则查看失败原因是否和作者一样

失败原因1

image-20260107174149211

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

image-20260107174322423

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

失败原因2

image-20260107174522511

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

image-20260107174709369

再次生成配置文件

笔者到这里就没有报错了,如果你还有其他错误请查阅其他教程

点击Generate构建即可

image-20260107174833033

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

打开OpenCV.sln

image-20260107175038662

将Debug切换为Release

image-20260107175139589

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

image-20260107175344877

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

image-20260107175531608

posted @ 2026-01-08 16:32  月之森黄瓜商  阅读(14)  评论(0)    收藏  举报