windows下不依赖Visual Studio编译gpu版opencv,支持硬解码硬编码
cuda cudnn下载
这个网上教程一堆也很详细,我就不赘述了
我的cuda版本是11.8
,cudnn版本是8.6.0
下载msvc编译器
windows下的c/c++编译器分两派,一派是微软的msvc,另一派的mingw。而Visual Studio 2019等开发工具就是以msvc为基础的。
这次我们也要用到
msvc编译器
,但是不下载vs2019,vs2022这些臃肿的工具
为什么不用mingw呢?因为opencv的cuda编译只能使用msvc,无法支持mingw,如果只需要简单的opencv的cpu版本,那么两个编译器都可以
首先去官网下载msvc生产工具,打开安装后的界面如下,选择使用c++的桌面开发
,然后选择右边五个打上勾(这是默认的配置,其实可以只要第一个和第二个,这里我就按默认的来了)
默认安装后重启电脑,重启后在开始菜单上可以看到下图的选项就没问题
Cmake-gui下载
cmake-gui:下载地址,按照默认安装即可,cmd输入cmake有相应提示就没问题
opencv openc-contrib下载
opencv我是使用4.8.1地址
opencv contrib 下载地址
下载完成后解压即可,可以放在同一个文件夹避免混乱
cmake-gui 配置opencv
从上到下,第一个箭头是源码路径,第二个是要保存的编译路径,第三个配置信息,红色是代表新增的选项,可以修改,我们主要修改这里。第四个是配置按钮
-
在cmake-gui中依次填入
源码地址
和编译后的文件保存地址
后,点击第一次configure配置编译器
-
配置后cmake工具会获取opencv的配置信息,就是第一张图中红色的配置信息,在根据我们的需求填入配置额外的参数,如
contrib路径,配置cuda,将所有dll文件合成一个
-
再点一次configure继续配置,期间可以多次点击configure按钮进行多次配置,防止有些选项你找不到。
注意:因为opencv在编译期间会下载第三方依赖文件,这些文件都是外网的,如果你有科学上网工具,可以在cmake的environment中设置代理,没有的话可以上网查看其它方法,或者看一下置顶评论的方法
-
配置好后的界面如下,
确保NVCUVID NVCUVENC两个模块出现在下方列表中
,然后在点击generate
生成cmake文件
打开电脑查看保存路径,大概会生成如下文件
编译opencv
- 在开始菜单找到msvc编译器,名称是
x64 Native Tools Command Prompt for VS 2022
- 用cd命令跳转到自己的opencv build保存路径
- 输入
cmake --build . --config Release --target install
开始编译,其中Release是指生成release版本,如果你想要debug版,则将Release改成Debug。注意整个编译过程持续时间非常久,半个钟是正常的,只要过程不报红就没问题
- 最终的文件会保存在install文件夹中,至此编译完成