一、安装环境
1、opencv4.5.5
下载地址:
https://github.com/opencv/opencv/archive/refs/tags/4.5.5.zip
https://gitee.com/mirrors/opencv/tree/4.5.0
2、opencv-contrib4.5.5
下载地址:
https://github.com/opencv/opencv_contrib/archive/refs/tags/4.5.5.zip
https://gitee.com/mirrors/opencv_contrib/tree/4.5.0
3、cudnn-8.x
4、cuda-10.2
5、cmake-3.22.0
6、vs2015 Update3或vs2019
Visual Studi官网:https://www.visualstudio.com/vs-2015-product-editions
Visual Studio Professional 2015.3简体中文版(专业版):
http://download.microsoft.com/download/5/4/b/54bf5736-8429-4c81-b1b3-79de06dfe756/vs2015.3.pro_chs.iso
Visual Studio Enterprise 2015.3简体中文版(企业版):
http://download.microsoft.com/download/7/c/f/7cf151c3-b735-4e35-a1bb-9a48224f4a95/vs2015.3.ent_chs.iso
Visual Studio Community(社区版)
http://download.microsoft.com/download/5/d/1/5d1ec81e-bc59-448f-9ab6-27636d5cc18a/vs2015.3.com_chs.iso
注意:
1)cuda版本和cudnn版本需要对应。
2)opencv与vc版本对应关系。
opencv 4.5.5/4.6.0 vc2015
opencv 4.7.0/4.8.0/4.9.0/4.10.0 等 vc2019
二、用CMake编译opencv和opencv_contrib
1.、在编译选项中进行勾选。BUILD_CUDA_STUBS、OPENCV_DNN_CUDA、WITH_CUDA、OPENCV_ENABLE_NONFREE、build_opencv_world打勾。
2、在“Search”框中输入extra。找到编译选项OPENCV_EXTRA_MODULES_PATH,将Value设置为opencv_contrib4.5.5/modules,然后点击configure。
3、配置过程和编译opencv的一样,失败下载的文件要补上去。
4、在“Search”框中输入CUDNN。选择WITH_CUDNN、CUDNN_INCLUDE_DIR、CUDNN_LIBRARY
5、再点击generate。Configuring done、Generatin done说明配置成功了。
6、点击Open Project,会使用之前选择的特定版本visual studio打开。选择的 debug 和release的ALL_BUILD和INATALL,然后点击“生成”。
三、注意事项
1、由于国内网络环境可能会下载失败,这些需要我们自己下载并放入相应位置。可以通过查CMakeDownloadLog.txt,确定那些文件缺失,下载连接地址。手动下载,补充完整之后,再点击generate。出现Configuring done 和Generating done 即可。
下载后的文件拷贝到opencv-4.5.5\.cache对应的目录下。
如果下载不了,就从这里云盘下载。
链接:百度网盘
2、static constexpr报错,将vs2015升级到update3版本。
vs2015 update3 安装过程中,出现错误 0x80044000
只要能打开就行。
3、没勾选"BUILD_opencv_world",所以生成了多个库文件,方便打包时缩小体积。
4、opencv4.5.5 CPU版本下载地址
https://opencv.org/releases/
5、Could not load library cudnn_cnn_infer64_8.dll. Error code 193
是 cudnn 版本问题
原来安装了 cudnn-8.3.3.40,版本太高了。
下载cudnn-10.2-windows10-x64-v8.2.4.15.zip 解压到 cuda 对应的文件夹,运行成功。
6、cv::dnn::cuda4dnn::checkVersions cuDNN reports version 8.2 which is not compatible with the version 8.3 with which OpenCV was built
opencv4.5.5中调整cudnn的依赖路径(调整成cuDNN8.2库路径),重新编译opencv