vs2019编译opencv+contribute+gpu

1、提前准备

vs2019、opencv4.4.0、opencv-contribute4.4.0、CUDA Toolkit 11.8(不能高于自己电脑的CUDA版本)、CUDNN8.9.6

ps:先提前准备环境

1)cmd中查看:nvidia-smi查看自己的显卡信息,不存在下述信息的话则需先安装英伟达显卡驱动程序。

从下图可知,本机显卡驱动支持的cuda最高版本为12.2,那么只需要安装比12.2低或者相同的CUDA库即可。

需要注意的是,有些高版本的cuda不支持vs2022,比如cuda11.2最高只支持vs2019,而不支持vs2022。

2)安装CUDA及CUDNN

安装完CUDA后将CUDNN内的文件拷贝到CUDA安装文件夹,与文件夹内的合并。

指令:nvcc -V 

在控制台中输入bandwidthTest.exe及deviceQuery.exe的所在目录,如我的:

F:\installfile\NVIDIA GPU Computing Toolkit\CUDA\v11.8\extras\demo_suite

运行该程序:./bandwidthTest.exe及 ./deviceQuery.exe

出现Result = PASS信息表示成功安装CUDA及CUDNN

2、cmake配置编译选项时出现的问题

Policy CMP0148 is not set: The FindPythonInterp and FindPythonLibs modules are removed. Run "cmake --help-policy CMP0148" for policy details.

解决办法:在文件OpenCVUtils.cmake

F:\installfile\opencv4.4.0\opencv+contrib+gpu\sources\cmake\OpenCVUtils.cmake

的第一行添加

if(POLICY CMP0148) 
cmake_policy(SET CMP0148 OLD)
endif()if(POLICY CMP0146) 
cmake_policy(SET CMP0146 OLD)
endif()

3、若用vs2022编译的话可能会在编译时出现很多报错,因此改为vs2019来配置及编译。

4、配置步骤:

1)打开cmake,输入源码路径及生成工程的路径,后

2)Configure结束后,在search框里搜索并配置一些选项:

  1. 勾选 BUILD_opencv_world(它会将生成的所有库都集中在opencv_world440.lib或opencv_world440d.lib一个包中,而不是分散存放的,便于后续配置工程项目)
  2. 配置 OPENCV_EXTRA_MODULES_PATH,填写contrib源码的modules文件夹的位置,如我的:
    F:\installfile\opencv4.4.0\opencv+contrib+gpu\opencv_contrib-4.4.0\modules
  3. 搜索“cuda”,勾选 BUILD_CUDA_STUBS、OPENCV_DNN_CUDA、WITH_CUDA
  4. 勾选 ENABLE_FAST_MATH 
  5. 勾选 OPENCV_ENABLE_NONFREE
  6. 取消勾选 OpenCV_GENERATE_SETUPVARS
  7. 分别搜索“python”,“java”,“js”,“tests”,分别取消勾选所有已经勾选的python、java、js、tests相关选项

3)点击Configure进行第二次Configure

4)新配置以下

  1. 勾选 CUDA_FAST_MATH
  2. CUDA_ARCH_BIN 填写对应GPU的算力指数,如果已经有了多个值,可以把其他的值删除以加速后续编译,算力指数查询链接:CUDA GPUs - Compute Capability | NVIDIA Developer

5)再次点击Configure,同时检查一下生成信息:

没有报错的话,接着点击Generate生成工程。

6)在自己camke配置的工程目录下,打开生成的工程

  1. 选择Release(或Debug)和x64平台
  2. 右键ALL_BUILD工程,点击  生成
  3. 右键INSTALL工程,点击  仅用于项目   点击     仅生成INSTALL

至此编译结束,编译生成的文件在上述步骤二配置cmake时指定的build文件夹下的install文件夹中。

7)配置vs的opencv工程:常规的添加库目录、包含目录以及附加依赖库,并用以下代码来检验opencv库是否具备CUDA的支持

#include <opencv2/core.hpp>
#include <opencv2/core/cuda.hpp>
#include <iostream>int main() 
{std::cout << "OpenCV version: " << CV_VERSION << std::endl;// 检查是否有可用的 CUDA 设备if (cv::cuda::getCudaEnabledDeviceCount() > 0) {std::cout << "CUDA is enabled and available devices found." << std::endl;} else {std::cout << "CUDA is not enabled or no CUDA devices found." << std::endl;}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/416767.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用python+opencv解析图像和文本数据

1. 创建虚拟环境 新建文件夹, 并在文件夹中创建虚拟环境,可以使用Vscode打开文件夹, 然后在终端中输入以下命令: python -m venv venv2. 激活虚拟环境 在终端中输入以下命令: venv\Scripts\activate3. 安装依赖 在终端中输入以下命令: pip install opencv-pythonpip inst…

《JavaEE进阶》----7.<SpringMVC实践项目:【登录页面的验证】>

这篇文章详细的讲解了一个 简单的登录网页的前端代码和后端代码的构造 使用了JavaScript中的ajax来进行前后端的交互 一、前端代码 登录页面代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>登录…

CSS解析:盒模型

在网页上实现元素布局涉及很多技术。在复杂网站上&#xff0c;可能会用到浮动元素、绝对定位元素以及其他各种大小的元素&#xff0c;甚至也会使用较新的CSS特性&#xff0c;比如Flexbox或者网格布局。 在此之前我们要打好基础&#xff0c;深刻理解浏览器是如何设置元素的大小…

【卷起来】VUE3.0教程-04-表单输入绑定

Hello&#xff0c;各位老铁&#xff0c;今天我们继续给大家讲解VUE3.0教程&#xff0c;本期我们讲述一下VUE中的表单输入绑定&#xff0c;在实际开发过程中&#xff0c;表单的输入是我们常见的功能&#xff0c;那么我们接下来看看&#xff0c;VUE是如何处理的。 各位看官&…

JVM面试(五)垃圾回收机制和算法

概述 了解Java虚拟机的垃圾回收机制&#xff08;Garbage Collection&#xff0c;简称GC&#xff09;&#xff0c;我们也要像其作者John McCarthy一样&#xff0c;思考一下三个问题&#xff1a; 哪些内存需要回收&#xff1f;什么时候回收&#xff1f;如何回收&#xff1f; 虽…

51单片机-DS1302(RTC时钟显示,代码内改变,内设的24年9月5日,上午11:12:00)

一、DS1302时序及命令字 两个操作&#xff1a;写操作和读操作 写操作&#xff1a; &#xff08;由我们单片机一个控制引脚控制DS1302的IO口写入&#xff09;首先就是通过时序图把我们的命令字写入&#xff0c;命令字是控制我们对应要写入的年月日&#xff0c;时分秒等配置的关…

vue3安装sass时报错:Embedded Dart Sass couldn‘t find the embedded compiler executable

vue3安装sass&#xff1a; npm install sass --save-dev 引用 <template><div class"c1"><h1>hello</h1></div> </template> <style lang"scss">.c1{background-color:red;h1{color:yellow;}} </style>报…

2.门锁_STM32_舵机设备实现

概述 需求来源&#xff1a; 门锁的开启和关闭&#xff0c;就是电机来控制。这里不进行实际门锁机械结构的设计&#xff0c;选择用舵机或者电机转动一定的角度&#xff0c;就代表门锁开启。 舵机开发整体思路&#xff1a; 使用STM32裸机开发舵机&#xff0c;使得舵机可以实现…

spring boot 项目 prometheus 自定义指标收集区分应用环境集群实例ip,使用 grafana 查询--方法耗时分位数指标

spring boot 项目 prometheus 自定义指标收集 auth author JellyfishMIX - github / blog.jellyfishmix.comLICENSE LICENSE-2.0 说明 网上有很多 promehteus 和 grafana 配置&#xff0c;本文不再重复&#xff0c;只介绍自定义部分。目前只介绍了分位数指标的收集和查询&a…

公认最好的跑步耳机,精选五款热门骨传导运动耳机分享

跑步时候总想来点音乐伴随&#xff0c;但是带着有线耳机太局限&#xff0c;带无线耳机又总担心掉落&#xff0c;左右为难&#xff0c;想要挑选一款运动时带着舒服的耳机真的有点难。最近发现骨传导耳机作为一种创新的音频设备&#xff0c;与传统耳机不同&#xff0c;通过将声音…

如何建立有效的沟通和协作机制来开展DFMEA工作?

在当今复杂多变的工业环境中&#xff0c;DFMEA&#xff08;设计失效模式与影响分析&#xff0c;Design Failure Mode and Effects Analysis&#xff09;作为质量管理体系中的一项关键工具&#xff0c;对于预防产品设计和开发过程中潜在的失效模式具有不可估量的价值。有效的DFM…

超声波眼镜清洗机买哪款?2024超声波眼镜清洗机推荐

超声波清洗机正逐渐成为广受欢迎的清洁解决方案&#xff0c;它以高效、深入且细腻的清洁效果&#xff0c;以及操作上的简易性&#xff0c;赢得了消费者的广泛喜爱。不过&#xff0c;市面上琳琅满目的品牌、多样化的型号及波动的价格区间&#xff0c;确实给消费者挑选时带来了不…

uniapp和vue3中使用vConsole在H5中开启移动端调试

uniapp和vue3中使用vConsole在H5中开启移动端调试 1. 安装vconsole npm install vconsole --save2. 在main.js中全局引入 重新启动项目即可

【js逆向专题】8.webpack打包

本教程仅供学习交流使用&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff0c;请各学员自觉遵守相关法律法规。小节目标: 熟悉 webpack打包原理熟悉 webpack打包方式了解 webpack多模块打包 一. webpack打包 概念: webpack 是…

传递给 LEFT 或 SUBSTRING 函数的长度参数无效

我的Sql语句&#xff1a;select left(long,charindex(‘’,Long)-1) from Site 会报错&#xff0c; 错误信息是&#xff1a;传递给 LEFT 或 SUBSTRING 函数的长度参数无效。 如果我把Sql语句这样写加了一个where条件&#xff0c;即&#xff1a; select left(long,charindex(‘…

金属三通管液压成形液压机比例阀放大器

金属三通管液压成形液压机比例阀配套BEUEC比例放大器适用于紫铜、青铜、不锈钢、铝合金、复合材料的三通管、四通管、T型管、Y型管、L型管的一次液压胀形成形&#xff0c;更适用于石油化工、热能、新能源、医疗、环保、卫浴、五金等行业的各种金属中空零件和复杂曲面的管件的生…

信也持续构建集群容器化改造之路

1. 前言 随着应用构建需求增加以及新构建场景引入&#xff0c;公司对构建系统的扩展性、稳定性要求日益提高。多语言构建&#xff08;如Golang、Java、Python、Node.js 等&#xff09;所依赖的环境&#xff0c;部署在同一台物理机上时&#xff0c;使构建机环境维护困难&#xf…

解决SecoClient接收返回码超时

解决SecoClient接收返回码超时_secoclient接收返回码错误win11-CSDN博客 新的SVDDrv.sys有需要的&#xff0c;https://download.csdn.net/download/shuoshuo_12345/89715503下载即可。

【maven】阿里云和apache仓库配置

阿里云公共仓库的配置看起来有多种类型的仓库: 配置指南 我的maven是idea 自带的:D:\Program Files\JetBrains\IntelliJ IDEA 2022.3.1\plugins\maven\lib\maven3\</

人工智能造福公众:未来一片光明

作者&#xff1a;来自 Elastic Peter Dutton 我们如何衡量人工智能对政府的影响&#xff1f;毫无疑问&#xff0c;人工智能将为运营流程和决策带来的好处已被广泛讨论 —— 从自动化工作流程到节省成本再到减少重复工作。 但对于以服务公众为目标的组织来说&#xff0c;人工智…