基于VS平台编译带Cuda的OpenCV(内含版本以及整套方案含泪总结)

news2024/10/7 19:18:39
  • 感谢

先感谢以下帖子,确实很有参考意义,但很多坑还是没总结到(我抓狂了)
从安装到编译保姆级帖子:https://blog.csdn.net/fengxinzioo/article/details/109402921
大神版核心步骤帖子(主要参考):https://blog.csdn.net/iracer/article/details/125360183
opencv官方论坛:https://forum.opencv.org/

写在前面

看本篇必先看(不然直接关掉网页,很关键!踩了太多坑了,哭了…

1. 版本问题

这里的版本详情如下:

NVIDIA CUDA:11.8                          (与OpenCV版本互关联)
NVIDIA cuDNN:8.2.1                        (关联CUDA版本)
NVIDIA GPU:GeForce RTX 3050               (这个在编译的时候要用,跟其他版本无关)
OpenCV:4.7.0                              (与CUDA版本互关联)
Visual Stdio:community 2019               (2017-1019支持CUDA版本OpenCV)
CMake:3.27.1                              (这个貌似不关键)

注意:千万注意cuda版本要和opencv版本配套,不知道怎么配套笔者提供一个思路:看两者的发布时间,一般cuda先发布,然后opencv会去适配他。然后cudnn和cuda要配套,这个在下载cudnn的时候就会提示。

2. 思路

授人以鱼不如授人以渔,编译的大体思路是这样的:

  1. 先看自己要用什么版本的cuda或者opencv;
  2. 然后去找其他组件的对应版本,用之前我提供的方法;
  3. vs版本最好使用2017~2019的,因为带cuda的opencv暂不支持其他版本(别问我怎么迟到的,在坑中泪目= =);
  4. 然后在cmake中多次编译,最后生成,再在vs中生成即可。

文章目录

  • 写在前面
    • 1. 版本问题
    • 2. 思路
  • 一、下载
  • 二、编译
    • 2.1 坑1
    • 2.2 坑2
    • 2.3 坑3
  • 三、总结

一、下载

这里就是按照参考1的帖子,安装你的cuda和cudnn即可。然后下载opencv和opencv_contrib。还有CMake,VS下好就好了。这里没啥坑。

二、编译

坑主要在这里,我重点总结下。

首先,步骤就按照参考2的帖子来就好了,有一步OPENCV_ENABLE_NONFREF这个打钩这个没拼对,应该是OPENCV_ENABLE_NONFREE

2.1 坑1

报错:Invalid character escape ‘\P’. Call Stack (most recent call first): cmake/OpenCVModule.cmake:385 (ocv_glob_modules)

解决方法:看下cmake配置的路径,是不是有反斜杠"",都改为正斜杠“/”即可。

2.2 坑2

报错:Could NOT find CUDNN (missing: CUDNN_LIBRARY CUDNN_INCLUDE_DIR) (Required is at least version “7.5”)

解决方法:
可能原因1:大多数应该是cmake配置里没有配置这个变量值,如此添加了你的cuda的lib路径即可:
在这里插入图片描述
其他的这类报错都一样,都在这里找,然后填lib路径。这个问题,我看很少人碰到,但我碰到了估计哪里操作有问题,第二次貌似就没这个问题了。

可能原因2:那就是cudnn真的版本不对了,那就换cudnn版本就好了,也可参考帖子1。

2.3 坑3

版本问题! opencv和vs的版本的坑都被我碰到了,来者需谨慎~

三、总结

这篇也基本是总结贴,也算把坑填上吧,太坑了太坑了,坑半下午了,希望后面的童鞋引以为戒~

Enjoy~

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

促进合作交流|旅游专业老师在加拿大访学期间取得初步成果

N老师拟申报CSC,指定国家且要求接收学校不收取板凳费,最终我们分别获得了澳大利亚科廷大学和加拿大圭尔夫大学的邀请函(均未收取板凳费)。N老师用前者申报了CSC并获批,因签证原因又用后者申请了改派,并在加…

Java之Collection集合的详细解析

1.Collection集合 1.1数组和集合的区别【理解】 相同点 都是容器,可以存储多个数据 不同点 数组的长度是不可变的,集合的长度是可变的 数组可以存基本数据类型和引用数据类型 集合只能存引用数据类型,如果要存基本数据类型,需要存对应的包装类 1.2集合类体系结构【理解】 …

APUS与腾讯达成战略合作,携手深化产业赋能

9月7—8日,2023腾讯全球数字生态大会在深圳盛大举行,AI大模型企业APUS出席大会,APUS副总裁邓小波与腾讯现场签约战略合作,双方将集中各自优势,在ICT基础设施、大模型生态建设等领域开展广泛、深入合作。此外&#xff0…

mockjs+json-server模拟百万条数据

文章目录 前言场景前置操作安装axios或者Ajax(作者用的是axios)mock.js文件编辑编辑json-server文件夹添加百万条虚拟数据后言 前言 hello world 欢迎来到前端的世界 😜当前文章系列专栏:前端 🐱‍👓博主在…

G. The Morning Star

Problem - G - Codeforces 思路:想了挺长时间的,一直没想到一个简便的方法在瞎搞。我们发现对于某个点来说,其他的点如果能够跟他匹配,那么一定在这8个方向上,而同时这8个方向其实对应这4条直线,假设点为(x…

Jetpack 中 room 基本使用

Room 概述 Room 持久性库在 SQLite 上提供了一个抽象层,以便在充分利用 SQLite 的强大功能的同时,能够流畅地访问数据库,具体来说,Room具有一下优势: 1、针对SQL 查询的编译时验证。 2、可最大限度减少重复和容易出…

三、创建各个展示模块组件

简介 在文件 components 中创建轮播模块组件,引入App.vue展示。欢迎访问个人的简历网站预览效果 本章涉及修改与新增的文件:First.vue、Second.vue、Third.vue、Fourth.vue、Fifth.vue、App.vue、vite-env.d.ts、assets 一、修改vite-env.d.ts文件 /// <reference type…

Linux-Shell整理集合

Shell变量 参考文章&#xff1a; Shell脚本中变量的使用 shell语法之 , ‘ ‘ , {},, ,‘‘,(),$(())四种语法含义 参考文章&#xff1a; shell语法之 , ‘ ‘ , {},, ,‘‘,(),$(())四种语法含义 grep常用用法 Shell awk命令详解 grep 跟awk连着用&#xff1a; 获取某程序的…

索尼 toio™应用创意开发征文|联盟国战

✨ 能用众力&#xff0c;则无敌于天下矣&#xff1b;能用众智&#xff0c;则无畏于圣人矣。 —— 孙权 前言&#xff1a; 从火爆全网的ChatGPT&#xff0c;到人人都是开发者。AI无疑贯彻了整个2023年的主题&#xff0c;从刚上幼儿园的小朋友到耄耋之年的老顽童&#xff0c;都对…

Meta 验证徽章:为何大家都想在 FB 和 IG 上获得元验证

随着 Meta&#xff08;前身为 Facebook&#xff09;和 Instagram 统治数字领域&#xff0c;Meta Verified 徽章已成为真实性的终极象征。无论您是公众人物还是品牌&#xff0c;在Facebook和Instagram上获得此徽章都会对您的在线形象产生深远的影响。Facebook验证于2013年首次推…

【Python程序设计】Python 中的环境变量【05/8】

一、说明 以下文章是有关 Python 数据工程系列文章的一部分&#xff0c;旨在帮助数据工程师、数据科学家、数据分析师、机器学习工程师或其他刚接触 Python 的人掌握基础知识。本篇将讲述环境变量的问题。 迄今为止&#xff0c;本初学者指南包括&#xff1a; 第 1 部分&#xf…

算法的时间及空间复杂度

&#x1f353; 简介&#xff1a;java系列技术分享(&#x1f449;持续更新中…&#x1f525;) &#x1f353; 初衷:一起学习、一起进步、坚持不懈 &#x1f353; 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正&#x1f64f; &#x1f353; 希望这篇文章对你有所帮助,欢…

thinkPhp5返回某些指定字段

//去除掉密码$db new UserModel();$result $db->field(password,true)->where("username{$params[username]} AND password{$params[password]}")->find(); 或者指定要的字段的数组 $db new UserModel();$result $db->field([username,create_time…

AList dokcer安装及百度网盘挂载

AList是开源的网盘管理工具。本文介绍如何通过docker安装AList并挂载百度网盘 1、AList安装 1.1、系统安装 通过docker命令进行安装&#xff0c;命令如下: docker run -d --restartalways -v /etc/alist:/opt/alist/data -p 5244:5244 --name"alist" xhofe/alist:…

学生来看!如何白嫖内网穿透?点进来!

文章目录 前言本教程解决的问题是&#xff1a;按照本教程方法操作后&#xff0c;达到的效果是前排提醒&#xff1a; 1 搭建虚拟机1.1 下载文件vmvare虚拟机安装包1.2 安装VMware虚拟机&#xff1a;1.3 解压虚拟机文件1.4 虚拟机初始化1.5 没有搜索到解决方式&#xff1a;1.6 虚…

End-to-End Object Detection with Transformers(论文解析)

End-to-End Object Detection with Transformers 摘要介绍相关工作2.1 集合预测2.2 transformer和并行解码2.3 目标检测 3 DETR模型3.1 目标检测集设置预测损失3.2 DETR架构 摘要 我们提出了一种将目标检测视为直接集合预测问题的新方法。我们的方法简化了检测流程&#xff0c…

第三方软件信息安全测评服务范围

安全测试 第三方软件信息安全cnas资质测评服务范围&#xff1a; 1、信息安全风险评估 依据《GB/T 20984-2007 信息安全技术信息安全风险评估规范》&#xff0c;通过风险评估项目的实施&#xff0c;对信息系统的重要资产、资产所面临的威胁、资产存在的脆弱性、已采取的防护措…

企业架构LNMP学习笔记24

学习目标和内容&#xff1a; 1、能够描述高可用HA的作用 2、能够理解VIP的切换&#xff1a;虚拟IP。 3、能够描述keepalived作用&#xff1a;保持活跃。主备的服务器的关系。 4、能够理解主master和备backup服务器关系 5、能够实现主备服务器高可用配置&#xff1a;主服务…

合宙Air724UG LuatOS-Air LVGL API控件-开关 (Switch)

开关 (Switch) 示例代码 function event_handler(obj, event)if event lvgl.EVENT_VALUE_CHANGED thenprint("State", lvgl.switch_get_state(obj))end endsw1 lvgl.switch_create(lvgl.scr_act(), nil) lvgl.obj_align(sw1, nil, lvgl.ALIGN_CENTER, 0, -50) lvg…