很高兴在雪易的CSDN遇见你
VTK技术爱好者 QQ:870202403 公众号:VTK忠粉
前言
本文分享OpenCV-4.9.0源码编译流程,包含CUDA模块,包含Python-opencv,希望对各位小伙伴有所帮助!
感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步!
你的点赞就是我的动力(^U^)ノ~YO
目录
前言
1. 环境准备
2. 源码下载
3. CMake编译
3.1 创建cmake项目
3.2 设置编译配置
结论:
1. 环境准备
- Visual Studio 2022
- Python3.12
- CUDA: 12.2, cudnn: 9.0
- CMake3.27.0
2. 源码下载
下载OpenCV源码,此处需要下载两个源码,分别是opencv和opencv_contrib。下载链接为
opencv:
https://github.com/opencv/opencv/archive/4.8.0.zip
opencv_contrib:
https://github.com/opencv/opencv_contrib/tags
  不过在下载时要注意一点,就是要保证opencv和opencv_contrib下载的版本要一致,此处我们下载的版本为:4.9.0。下载完成后,将两个文件解压到同一个文件夹中。
3. CMake编译
3.1 创建cmake项目
  打开CMake软件,设置项目源码路径,并在源码路径下创建一个build文件夹,并设置编译文件夹,如下图所示:

  接下来点击Configure,进行第一次配置,然后回弹出编译平台选择,此处根据自己电脑的编译软件进行选择,在本文中我们使用的是Visual Studio 2022,然后选择编译平台为x64。
第一次配置生成后,输出如下所示:

3.2 设置编译配置
首先添加opencv_contrib模块的引用,在OPENCV_EXTRA_MODULES_PATH条目中添加该模块的路径,然后选择OPENCV_ENABLE_NONFREE,如下图所示:

接下来添加CUDA的设置,首先选择WITH_CUDA,如下图所示:

然后选择OPENCV_DNN_CUDA,此处还可以选择OPENCV_DNN_OPENVINO等不同的模型部署,如下图所示:

 最后选择ENABLE_FAST_MATH

 此处为了让生成的依赖库文件都集成在一个文件中,方便后面使用,所以此处可以选择BUILD_opencv_world,如果不选择,生成的 文件将会被拆散成多个文件。
 
  
还有Python相关的选项

第二次Configure后,下一步就是需要检查一下其过程是否有异常抛出
第一个异常:

解决方案:
DNN: CUDA backend requires cuDNN. Please resolve dependency or disable OPENCV_DNN_CUDA=OFF · Issue #25426 · opencv/opencv · GitHub

cuDNN9还不支持,因此切换为相应的cuDNN版本。

下载时需要注册账号,但又经常会卡在注册账号页面。可以右键复制连接后,在迅雷中下载。
下载完成后,打开压缩文件,将lib,dll,include文件夹的文件复制到CUDA的安装目录对应的文件夹下。
并在变量CUDNN_LIBRARY中写入cudnn.lib的路径

第二个异常:文件下载异常
首先查看一下配置输出框是否抛出警告,如果有的话,一定要解决一下,不然后续编译会出错。

  当出现上图所示的异常后,就需要手动解决一下该问题,首先找到build\CMakeDownloadLog.txt文件,然后打开后,查看一下是否有下图所示的文件确实异常。如果有,请自行下载,下载链接如下图所示标注位置,下载后将文件放置在下图所示缺失文件路径,并按照要求修改名称。

折腾了一天,终于看到Configuring done !
结论:
感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步!


![undetected_chromedriver驱动浏览器结束报错OSError: [WinError 6] 句柄无效](https://img-blog.csdnimg.cn/direct/d253e2b01ba248c99ef957cc8708285d.png)
















