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

相关文章

SpringBoot路径映射配置的实现步骤

《SpringBoot路径映射配置的实现步骤》本文介绍了如何在SpringBoot项目中配置路径映射,使得除static目录外的资源可被访问,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一... 目录SpringBoot路径映射补:springboot 配置虚拟路径映射 @RequestMapp

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

Nginx中配置使用非默认80端口进行服务的完整指南

《Nginx中配置使用非默认80端口进行服务的完整指南》在实际生产环境中,我们经常需要将Nginx配置在其他端口上运行,本文将详细介绍如何在Nginx中配置使用非默认端口进行服务,希望对大家有所帮助... 目录一、为什么需要使用非默认端口二、配置Nginx使用非默认端口的基本方法2.1 修改listen指令

mysql5.7.15winx64配置全过程

《mysql5.7.15winx64配置全过程》文章详细介绍了MySQL5.7.15免安装版的配置步骤,包括解压安装包、设置环境变量、修改配置文件、初始化数据目录、安装服务、启动数据库、登录及密码修改... 目录前言一、首先下载安装包二、安android装步骤1.第一步解压文件2.配置环境变量3.复制my-

Jenkins的安装与简单配置过程

《Jenkins的安装与简单配置过程》本文简述Jenkins在CentOS7.3上安装流程,包括Java环境配置、RPM包安装、修改JENKINS_HOME路径及权限、启动服务、插件安装与系统管理设置... 目录www.chinasem.cnJenkins安装访问并配置JenkinsJenkins配置邮件通知

Linux查询服务器系统版本号的多种方法

《Linux查询服务器系统版本号的多种方法》在Linux系统管理和维护工作中,了解当前操作系统的版本信息是最基础也是最重要的操作之一,系统版本不仅关系到软件兼容性、安全更新策略,还直接影响到故障排查和... 目录一、引言:系统版本查询的重要性二、基础命令解析:cat /etc/Centos-release详

Conda国内镜像源及配置过程

《Conda国内镜像源及配置过程》文章介绍Conda镜像源使用方法,涵盖临时指定单个/多个源、永久配置及恢复默认设置,同时说明main(官方稳定)、free(逐渐弃用)、conda-forge(社区更... 目录一、Conda国内镜像源二、Conda临时使用镜像源指定单个源临时指定多个源创建环境时临时指定源

MySQL配置多主复制的实现步骤

《MySQL配置多主复制的实现步骤》多主复制是一种允许多个MySQL服务器同时接受写操作的复制方式,本文就来介绍一下MySQL配置多主复制的实现步骤,具有一定的参考价值,感兴趣的可以了解一下... 目录1. 环境准备2. 配置每台服务器2.1 修改每台服务器的配置文件3. 安装和配置插件4. 启动组复制4.

通过配置nginx访问服务器静态资源的过程

《通过配置nginx访问服务器静态资源的过程》文章介绍了图片存储路径设置、Nginx服务器配置及通过http://192.168.206.170:8007/a.png访问图片的方法,涵盖图片管理与服务... 目录1.图片存储路径2.nginx配置3.访问图片方式总结1.图片存储路径2.nginx配置