网上东查西查,自己还是倒腾了两天,记录一下,也给大家做个参考!
1.环境
- cuda:11.7(看自己英伟达控制面板里写的最大支持cuda)
- cudnn:8.9.2 一定要与cuda配套的,自己去查
- opencv:我用的4.9.0(4.5以上应该问题都不大)
- opencv-contrib:opencv-contrib-4.9(与opencv对应 )
- CMake:3.29.3(版本无所谓,官网下个最新的应该问题不大)
- vs2017/2019:只有2017/2019支持编译opencv_world,血泪的教训
cuda cudnn opencv opencv-contrib 这些自行百度安装
主要是Cmake,cmake编译的没问题,vs也基本不会有问题
2.编译Opencv
1.cmake配置源路径和目标路径

2.选择dubug 或 release(这步可选,默认release)
在opencv目录下,打开CMakeLists.txt,大概100来行


3.点击configure

选vs2017 或 2019,平台一般就选x64,finish ,结束,显示这样

4. 勾选CUDA相关的

5.填写contrib 扩展模型路径

6.取消勾选 python,java,test,拿来没用


7.勾选BUILD_opencv_world

8.再次点击Configure
等待结果,如果下面出现红色字(warring or error)
类似

一定要处理 ,别不把警告当回事,需要自己手动去下载他报错的报,根据错误提示信息,查看对应的CMakelist文件,看看下载的包放在哪里
https://github.com/opencv/opencv_3rdparty/


在opencv目录下,构建cmake时会生成一个.cache文件夹,如果cmake中报红,就去看这里面的文件夹, ffmpeg ippicv wechat xfeaturesd这几个的东西如果是0Kb,就需要自己去手动下载放进去,名字要改的和里面的一样。
例如这样,我这是手动下载了,不然后面大小都是0kb:
如果没爆红,那真是幸运(羡慕)
ps:这个貌似不用管!

9.cuda_arch_bin算力设置
上一次configure完,CUDA_ARCH_BIN 这块应该是这样的,最好直接去查询下自己显卡对应的算力,不改应该也成
https://developer.nvidia.cn/cuda-gpus

10.勾选CUDA_FAST_MATH
注意不要勾到哪个enable_fast_math去了
11.取消勾选setupvars

12.勾选OPENCV_ENABLE_NONFREE(不勾问题好像也不大)

13.再次点击Configure,然后不报红就点击generate,报错就按照上面的解决报错,不然vs里大概率报一大堆错,费时费力。然后就会在build输出目录找到一个OpenCV.sln文件,在vs中打开这个解决方案,进行编译。

14.生成解决方案
点击两次,一个生成ALL_BUILD,一次生成INSTALL

或者直接 在生成==》配置管理器==》勾选INSTALL,然后生成解决方案就行了。
3.结束
大概需要1-2给小时不等吧,生成成功的话,会在build目录下生成一个install文件夹,里面就是我们需要的文件,主要检查lib和bin,里面有没有对应的lib和dll。




结束,有问题欢迎指导!
7953

被折叠的 条评论
为什么被折叠?



