1.下载vs2015/2017/2019,根据实际使用决定安装visual stdio版本;同时安装CMake
2.下载 OpenCV4.x 以及对应的 opencv_contrib-4.x
!!!4.x版本的opencv跟cuda12.0版本以上的是无法编译的,texture模块在cuda12.0sdk中被删除了
2.1.opencv源码下载地址
opencv.org/releases/
github.com/opencv/open…
2.2.opencv_contrib地址,第二个是国内的一个站点,速度较快
github.com/opencv/open… www.raoyunsoft.com/opencv/open…
2.3.下载CUDA和cuDNN安装文件
首先通过命令 nvidia-smi指定读取当前显卡的驱动版本,再根据当前的驱动版本去选择对应的cuda版本
cuda下载链接
根据cuda的版本,选择对应的cuDNN,下载链接
developer.nvidia.com/rdp/cudnn-d…
安装cuda
运行cuda安装包,第一次安装可以选择自定义,全部组件都勾上安装 安装过程中会有一个安装位置的提示,这里暂时使用默认位置,记住这个位置,后面配置环境变量要用,其他的直接下一步,直到安装结束。
添加cuda的环境变量,如果存在则不需要添加。
打开命令行,输入 nvcc -V,若可以打印cuda版本信息,则cuda安装成功
配置cuDNN
解压cuDNN对应的zip压缩文件,复制里面的bin/include/lib三个文件夹,找到之前提示的安装位置,将这三个文件夹拷贝到这个文件内。 配置cuDNN的环境变量,新建四个路径直接添加到path中,如果已存在不需要重复添加
cuDNN配置完成
安装opencv编译需要的第三方库 3rdparty
这些库会在cmake过程中自行下载,但是如果网络环境不好或者无法上外网,则会下载失败。 这里建议提前下载好放到源码目录下的.cache文件夹中。
注意不要鼠标右键新建文件夹,建立不了前缀名是"."的文件夹,需要用命令行,> md .cache
也可以直接运行cmake,如果make失败也会给你创建好.cache以及里面的子目录。 以ffmpeg下载失败的情况为例,进行手动下载ffmpeg所需的依赖库。
第三方库的下载链接
github.com/opencv/open… 在源码目录中找到./3rdparty/ffmpeg/ffmpeg.cmake
这里第一行提示的就是所需要下载的版本,到上面的下载链接中找到ffmpeg/master_20200609这个版本
下载该压缩包并解压,找到其中的三个文件。
将这三个文件拷贝到.cache/ffmpeg中,再根据./3rdparty/ffmpeg/ffmpeg.cmake文件中要求的哈希值FFMPEG_FILE_HASH 修改这三个文件的文件名前缀
得到
编译依赖的ffmpeg库就准备好了。 类似的准备好其他库就可以运行CMake进行编译了。
编译选项的选择
- 勾选BUILD_opencv_world 可以直接生成opencv_world440.dll,调用的时候直接调用这一个库文件
- OPENCV_EXTRA_MODULES_PATH选项中,填写opencv_contrib解压目录下,modules文件夹的路径,这样就把opencv_contrib编译进去了。
- 勾选OPENCV_ENABLE_NONFREE,这个就是启用SURF特征提取算法的。