Windows系统下OpenCV+Contrib+CUDA配置(VS2017+OpenCV3.4.3+CUDA10.0)

2024-02-05 06:18

本文主要是介绍Windows系统下OpenCV+Contrib+CUDA配置(VS2017+OpenCV3.4.3+CUDA10.0),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文是在上一篇文章的基础上加入CUDA的配置,核心依然是使用Cmake对OpenCV+Contrib进行配置。配置过程中需要注意一些小细节的设置并且一定要有耐心。
上一篇文章链接:https://blog.csdn.net/stjuliet/article/details/83903619

目录

    • step1 运行环境和前期准备
    • step2 编译OpenCV和Contrib库(WITH CUDA)
    • step3 测试

step1 运行环境和前期准备

操作系统和其他基础配置请参考上文,这里只展示与上文不一样的地方。

笔者的显卡为NVIDIA GeForce GT730 (2GB),计算能力为3.5.

1、查看自己电脑配置的显卡是否为NVIDIA显卡,是否支持CUDA:
https://developer.nvidia.com/cuda-gpus

2、下载显卡驱动并安装:
https://www.nvidia.cn/Download/index.aspx?lang=cn
此步骤可以省略,安装CUDA时会自动安装显卡驱动程序

3、根据自己电脑的情况下载CUDA并安装:
https://developer.nvidia.com/cuda-toolkit
因笔者使用的是VS2017,因此只能选择CUDA10.0,如果需要使用其他版本可以直接搜索找到下载链接
建议选择精简版,并且不修改安装路径

驱动和CUDA的具体安装过程可参考下文:
https://blog.csdn.net/qq_30623591/article/details/82084113

step2 编译OpenCV和Contrib库(WITH CUDA)

笔者的配置过程参考了以下文章:
https://blog.csdn.net/fengbingchun/article/details/9831837
https://blog.csdn.net/qq_15947787/article/details/78534272
https://blog.csdn.net/Goerge_L/article/details/79777989
https://blog.csdn.net/mangobar/article/details/80459866

1、
在这里插入图片描述

在这里插入图片描述

2、
点击finish后等待第一次congfigure done。在上文的基础上勾选WITH_CUDA,并且在配置表中找到“OPENCV_EXTRA_MODULES_PATH”,设置其参数值为open_contrib源码包中的modules目录。如果想缩短编译和重新生成解决方案的时间,建议将BUILD_EXAMPLES去除。再次点击configure。

3、
第二次configure done并且没有红色时,点击generate,完成后直接点击open project或者到编译输出目录下找到OpenCV.sln使用自己的VS打开此解决方案,打开解决方案后在x64 debug下重新生成解决方案。
重新生成过程中如果遇到提示“某个项目外部环境已更改”,选择全部重新加载即可。
配置CUDA的情况下,重新生成解决方案的时间很长,平均都要2-3小时,耐心等待吧。

接着找到CMakeTargets中的INSTALL,然后右键选择“仅用于项目”–>“仅生成INSTALL”。
生成结束后,按照之前的方法,新建解决方案后在属性管理器中把包含目录、库目录和附加依赖项配置好。
包含目录和库目录可以参考上一篇配置的文章。
附加依赖项(与之前有所不同,多了一些cuda的模块):
opencv_aruco343d.lib
opencv_bgsegm343d.lib
opencv_bioinspired343d.lib
opencv_calib3d343d.lib
opencv_ccalib343d.lib
opencv_core343d.lib
opencv_cudaarithm343d.lib
opencv_cudabgsegm343d.lib
opencv_cudacodec343d.lib
opencv_cudafeatures2d343d.lib
opencv_cudafilters343d.lib
opencv_cudaimgproc343d.lib
opencv_cudalegacy343d.lib
opencv_cudaobjdetect343d.lib
opencv_cudaoptflow343d.lib
opencv_cudastereo343d.lib
opencv_cudawarping343d.lib
opencv_cudev343d.lib
opencv_datasets343d.lib
opencv_dnn343d.lib
opencv_dpm343d.lib
opencv_face343d.lib
opencv_features2d343d.lib
opencv_flann343d.lib
opencv_fuzzy343d.lib
opencv_highgui343d.lib
opencv_img_hash343d.lib
opencv_imgcodecs343d.lib
opencv_imgproc343d.lib
opencv_line_descriptor343d.lib
opencv_ml343d.lib
opencv_objdetect343d.lib
opencv_optflow343d.lib
opencv_phase_unwrapping343d.lib
opencv_photo343d.lib
opencv_plot343d.lib
opencv_reg343d.lib
opencv_rgbd343d.lib
opencv_saliency343d.lib
opencv_shape343d.lib
opencv_stereo343d.lib
opencv_stitching343d.lib
opencv_structured_light343d.lib
opencv_superres343d.lib
opencv_surface_matching343d.lib
opencv_text343d.lib
opencv_tracking343d.lib
opencv_video343d.lib
opencv_videoio343d.lib
opencv_videostab343d.lib
opencv_xfeatures2d343d.lib
opencv_ximgproc343d.lib
opencv_xobjdetect343d.lib
opencv_xphoto343d.lib

注:重新生成解决方案不报错那自然是最好的了,笔者试了好几次,只有第一次完全正确,之后总是有少许错误,虽然不影响最后的install结果,但是会少1-2个lib,可能有些功能就无法使用了。经过多次测试,笔者发现如果某一个项目没有成功生成,可以直接到编译输出目录下的modules文件夹中找到未成功的项目名称文件夹,打开对应的.sln文件重新生成解决方案,再到CMakeTargets中生成INSTALL。这种方法不需要对所有项目再全部重新生成一遍,可以节约很多时间。

step3 测试

测试的目的主要是检测OpenCV是否正确配置好CUDA,是否可以使用GPU进行加速。
测试代码主要有以下三种:

//OpenCV3以后将命名空间变为cv::cuda, 原先是cv::gpu//测试显卡方法1(此方法可以读取显卡型号)cv::cuda::printShortCudaDeviceInfo(cv::cuda::getDevice());//测试显卡方法2int iDevicesNum = cv::cuda::getCudaEnabledDeviceCount();cout << iDevicesNum << endl;//测试显卡方法3cv::cuda::DeviceInfo _deviceInfo;bool _isDeviceOK = _deviceInfo.isCompatible();std::cout << "IsGPUDeviceOK : " << _isDeviceOK << std::endl;

如果抛出no cuda support的错误,可以将编译输出目录->install->x64->vc15->bin下的opencv_core343d.dll复制到C盘Windows的system32和64目录下。

网上找的测试代码,使用ORB提取单幅图像的特征点:
https://blog.csdn.net/m0_37857300/article/details/79039214
测试图片来自于毛星云《OpenCV3编程入门》配套电子资料。
在这里插入图片描述

断断续续摸索了一个星期多的时间,配置过程磕磕绊绊,总算把遇到的各种问题都解决了,但是因为各种因素,笔者打算弃用VS2017,转为之前一直使用的VS2015,因此此文写得较为简单,下文会详细写VS2015的CUDA配置过程。
非常感谢博客上关于CUDA配置的各种攻略和资源。

Juliet 于 2018.11

这篇关于Windows系统下OpenCV+Contrib+CUDA配置(VS2017+OpenCV3.4.3+CUDA10.0)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/679975

相关文章

最新版IDEA配置 Tomcat的详细过程

《最新版IDEA配置Tomcat的详细过程》本文介绍如何在IDEA中配置Tomcat服务器,并创建Web项目,首先检查Tomcat是否安装完成,然后在IDEA中创建Web项目并添加Web结构,接着,... 目录配置tomcat第一步,先给项目添加Web结构查看端口号配置tomcat    先检查自己的to

javafx 如何将项目打包为 Windows 的可执行文件exe

《javafx如何将项目打包为Windows的可执行文件exe》文章介绍了三种将JavaFX项目打包为.exe文件的方法:方法1使用jpackage(适用于JDK14及以上版本),方法2使用La... 目录方法 1:使用 jpackage(适用于 JDK 14 及更高版本)方法 2:使用 Launch4j(

什么是cron? Linux系统下Cron定时任务使用指南

《什么是cron?Linux系统下Cron定时任务使用指南》在日常的Linux系统管理和维护中,定时执行任务是非常常见的需求,你可能需要每天执行备份任务、清理系统日志或运行特定的脚本,而不想每天... 在管理 linux 服务器的过程中,总有一些任务需要我们定期或重复执行。就比如备份任务,通常会选在服务器资

Servlet中配置和使用过滤器的步骤记录

《Servlet中配置和使用过滤器的步骤记录》:本文主要介绍在Servlet中配置和使用过滤器的方法,包括创建过滤器类、配置过滤器以及在Web应用中使用过滤器等步骤,文中通过代码介绍的非常详细,需... 目录创建过滤器类配置过滤器使用过滤器总结在Servlet中配置和使用过滤器主要包括创建过滤器类、配置过滤

opencv实现像素统计的示例代码

《opencv实现像素统计的示例代码》本文介绍了OpenCV中统计图像像素信息的常用方法和函数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 统计像素值的基本信息2. 统计像素值的直方图3. 统计像素值的总和4. 统计非零像素的数量

TP-LINK/水星和hasivo交换机怎么选? 三款网管交换机系统功能对比

《TP-LINK/水星和hasivo交换机怎么选?三款网管交换机系统功能对比》今天选了三款都是”8+1″的2.5G网管交换机,分别是TP-LINK水星和hasivo交换机,该怎么选呢?这些交换机功... TP-LINK、水星和hasivo这三台交换机都是”8+1″的2.5G网管交换机,我手里的China编程has

在 VSCode 中配置 C++ 开发环境的详细教程

《在VSCode中配置C++开发环境的详细教程》本文详细介绍了如何在VisualStudioCode(VSCode)中配置C++开发环境,包括安装必要的工具、配置编译器、设置调试环境等步骤,通... 目录如何在 VSCode 中配置 C++ 开发环境:详细教程1. 什么是 VSCode?2. 安装 VSCo

windows端python版本管理工具pyenv-win安装使用

《windows端python版本管理工具pyenv-win安装使用》:本文主要介绍如何通过git方式下载和配置pyenv-win,包括下载、克隆仓库、配置环境变量等步骤,同时还详细介绍了如何使用... 目录pyenv-win 下载配置环境变量使用 pyenv-win 管理 python 版本一、安装 和

在Spring中配置Quartz的三种方式

《在Spring中配置Quartz的三种方式》SpringQuartz是一个任务调度框架,它允许我们定期执行特定的任务,在Spring中,我们可以通过多种方式来配置Quartz,包括使用​​@Sche... 目录介绍使用 ​​@Scheduled​​ 注解XML 配置Java 配置1. 创建Quartz配置

Kibana的安装和配置全过程

《Kibana的安装和配置全过程》Kibana是一个开源的数据分析和可视化平台,它与Elasticsearch紧密集成,提供了一个直观的Web界面,使您可以快速地搜索、分析和可视化数据,在本文中,我们... 目录Kibana的安装和配置1.安装Java运行环境2.下载Kibana3.解压缩Kibana4.配