OPENCV3.4.6+ RTX2060+VS2017编译记录

6 篇文章 0 订阅

注:本来一开始用的346版本,结果出问题;换成了3.4.16

一、显卡加速环境准备

默认安装的英伟达显卡驱动是没有配置显卡加速的。

要在程序中可以使用显卡加速需要先配置环境

需要准备:

1.显卡 rtx 2060(如何查看显卡是否支持硬件加速并选择合适的软件版本

2.英伟达CUDA Toolkit: cuda_11.1.1_456.81_win10.exe

3.CUDNN:cudnn-windows-x86_64-8.4.0.27_cuda11.6-archive.zip

注意:此处并不是最新版本就是最合适的!!一定要根据显卡的型号选择,否则白搭。而且在安装cuda tool kit的时候最好只安装 cuda部分,驱动等其他都不要勾选,否则会遇到鼠标键盘不好使等奇怪的问题

二、opencv 编译

1.点击config

配置选择如下,vs选择2015 或者2017均可,其他有问题,而且必须要选择64bit

2 点击finish后开始自动生成

搜索cuda后,如下图勾选 with_cuda

然后再次点击config,并等待出错

3.

如果顺利生成跳过此条

如果提示download XXX失败

就直接再次点击config,已经config过的会直接跳过,知道所有的都下载完成

 4.点击生成

报错

CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
CUDA_nppicom_LIBRARY (ADVANCED)

 出现这个问题原因:

用cmake编译OpenCV的时候,出现错误“CUDA_nppicom_LIBRARY (ADVANCED)”,如这个链接(https://gitlab.kitware.com/cmake/cmake/-/commit/1d9f2f9714af3cd9f43975456c4be03c2df463ad)
所述:在CUDA 11.0中,移除了这个库。但是CMAKE好像没及时更新。因此,信息不同步,导致报错。
————————————————
版权声明:本文为CSDN博主「ipanda_zll」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ipanda_huanhuan/article/details/107341173

解决办法:

cmake 的commit记录一年前就已经发现并在后期解决了此问题

修改策略是 修改opencv 目录 sources\cmake\FindCUDA.cmake

直接搜索文件 nppicom

修改为下图的样子

也就说,当cuda 版本大于11的时候不载再使用nppicom\

至此啊,最好再重新开始config一遍,

然后generate就很快成功。

生成了opencv.sln

用vs2017打开 opencv.sln

选择项目-生成,又是一堆报错

我不理解!

突然我想起了一件事,这个opencv346的源码是很早以前的了,大概是2019年的,所以难怪cmake的文件是错的,我最近嫌弃新下载麻烦就直接复制了之前下载的这个包。好了,这旧版本我不伺候了,重新下载了最新的3.4.16的源码,这次志在必得!

然后我就吭哧吭哧的下载完了新版3.4.16,然后径直去找cmake\FindCUDA.cmake文件,

结果这里的还是没改,索性我直接把整行注释了,反正我这也不会安装别的版本的cuda

然后重新config,报下载错误,

然后重新config,此处我的网络感觉变菜了,下载了好一会儿。下载完成后点击generate

点击生成的opencv.sln然后点击vs生成,等待一小时,生成完成。至此结束。

至于3.4.6版本为什么生成失败,不清楚。

生成完成后发现目录和之前的opencv目录不一样,找不到lib什么的

还需要点击 解决方案>cmake target>install 右键仅用于项目>仅生成项目install.

稍等片刻,生成完成后就会在看到多了一个install文件夹,里面的就是我们之前需要的lib文件和头文件。

但是由于我们在cmake的时候没有勾选 BUILD_opencv_world所以导致我们没有生成opencv_world.lib而是很多散装的lib文件,好处是可以减少体积,坏处是略麻烦,需要自己手动更改附加项依赖。

倒数第二步:将opencv添加到环境变量,只需要lib和bin即可

 最后一步,测试一下:

新建一个控制台项目,添加刚刚编译的opencv作为项目属性。执行以下代码。

    int a = cuda::getCudaEnabledDeviceCount();
    cout <<"显卡可加速数量:" <<a << endl;  \\1
    waitKey(0);

如上,显示是1,就证明配置成功。

总结:

之前generate配置错了,选择了32bit,然后导致生成出错,重新config的时候在cmake左上角点击清除缓存后最后把build目录下的东西也删除掉

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: OpenCV是一个开源的计算机视觉和机器学习库,可以方便地处理图像和视频。而CUDA(Compute Unified Device Architecture)是由NVIDIA开发的一种并行计算架构,可以加速图形处理器(GPU)上的计算任务。 OpenCV 4.5.1是OpenCV的一个版本,它提供了丰富的功能和算法,用于图像和视频处理、特征提取、目标检测等任务。这个版本可以在Windows 10操作系统上使用,并且可以与Visual Studio 2017集成,提供开发环境和调试工具。 CUDA 10.0是NVIDIA的一个版本,它支持NVIDIA GPU上的并行计算任务。它允许开发人员使用C语言、C++或CUDA自己的扩展语言编写并行计算代码,以加速计算密集型任务。例如,在图像处理中,可以使用CUDA加速OpenCV算法,从而提高计算性能。 而cuDNN(CUDA Deep Neural Network library)是NVIDIA专门为深度学习任务开发的一个库。它提供了一组高性能的深度神经网络的基本操作和优化算法,可以与CUDA和OpenCV结合使用。 综上所述,OpenCV 4.5.1可以与CUDA 10.0和cuDNN 7.6.0集成使用。开发者可以在Visual Studio 2017中使用这些工具和库进行图像处理和机器学习任务的开发和优化。通过使用CUDA加速,可以提高计算性能,而cuDNN可以提供深度学习任务所需的算法和操作。 ### 回答2: OpenCV 4.5.1是一个计算机视觉库,用于在计算机视觉和机器学习项目中进行图像和视频处理。VS2017是一个集成开发环境(IDE),用于Windows操作系统上的软件开发。CUDA(Compute Unified Device Architecture)是一个用于GPU计算的并行计算平台和API模型。CUDNN是NVIDIA深度神经网络库,用于在GPU上加速深度学习任务。 在Windows 10上使用VS2017编译OpenCV 4.5.1,并在CUDA 10.0和CUDNN 7.6.0的支持下进行构建可以提供更好的计算性能和加速。CUDA 10.0提供了与CUDA架构和驱动程序的兼容性,并支持许多NVIDIA GPU。CUDNN 7.6.0是基于CUDA的深度神经网络库,可以加速深度学习任务的训练和推理。 使用VS2017编译OpenCV可以让开发者方便地在Windows平台上进行开发和调试。VS2017提供了强大的集成开发环境,它可以帮助开发者编写、调试和测试程序。通过配置CUDA 10.0和CUDNN 7.6.0来支持OpenCV的GPU加速,可以进一步提高图像和视频处理的速度和效率。 总结来说,使用OpenCV 4.5.1、VS2017、Windows 10、CUDA 10.0和CUDNN 7.6.0可以实现在Windows平台上的高效计算机视觉和机器学习开发。这种配置可以提供更好的性能和加速,特别是在需要处理大量图像和视频、进行深度学习任务的情况下。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值