opencv4.7.0编译opencv-contrib-4.7.0以及CUDA

news2024/11/15 20:02:37

0、引言

最近工作中需要用到使用CUDA加速后的opencv进行传统算法的开发,在编程之前,需要先解决环境编译和lib库问题,本文就是记录自己编译opencv-4.7.0的全过程。

1、CUDA下载和安装

可参考我之前的博客WIN10安装配置TensorRT详解中的前几节,可以清楚的知道如何在Windows10系统上安装适合自己的CUDA以及验证CUDA是否可用

2、opencv-4.7.0+opencv-contrib-4.7.0下载

opencv的官方网站release了很多版本的opencv,如下图所示:
在这里插入图片描述
博主选择opencv-4.7.0的sources进行下载。

opencv-contrib-4.7.0的下载地址如下:opencv-contrib下载地址,或者如下网址:
https://github.com/opencv/opencv_contrib/tags

下载好的opencv-4.7.0以及opencv-contrib-4.7.0如下图所示:
在这里插入图片描述

3、配置cmake-gui

在where is source code中选择刚下载好的opencv-4.7.0路径下的source文件夹,在where to build the binaries中选择你希望编译的文件放置的地址,我的文件路劲是同目录下的opencv_4.7.0_cuda。配置好后直接点击config
在这里插入图片描述
其次,在search栏中输入extr,找到OPENCV_EXTRA_MODULES_PATH,在它的value中填入opencv-contrib-4.7.0文件夹下的module地址。
在这里插入图片描述
接着,在search栏中输入CUDA,勾选其中的WITH_CUDA以及BUILD_CUDA_STUBS。如果你需要使用opencv中dnn模块来进行CUDA的加速,那么请一并勾选OPENCV_DNN_CUDA。
在这里插入图片描述
在这里插入图片描述
其次,在search中输入world,勾选其中的BUILD_opencv_world,主要将所有lib文件都编入一个文件,防止在添加链接器lib的时候,需要去输入很多的lib文件名。
在这里插入图片描述
然后就是点击Configure进行配置,极大可能是配置不成功的,主要原因就是下载某些必须的cache不成功,具体来讲就是https://raw.githubusercontent.com访问失败。这里分享一个在windosw上可以完成下载的方法。

  • 进入 IPAddress.com 网站查询raw.githubusercontent.com真实地址
  • 使用管理员权限打开C:\Windows\System32\drivers\etc\hosts
  • 在文件的末尾添加199.232.4.133 raw.githubusercontent.com并保存

这样即可正常下载完成并配置成功。PS:如果还是不成功,那么我也将.cache文件打包上传了,等审核通过给大家上地址。

最后点击Generate完成生成。

4、visual studio 2019中完成编译

在cmake-gui中点击Opencv Project,直接打开工程,配置工程属于release还是debug,博主配置的是release,原因是使用debug会出现很多意想不到的问题,干脆弃用。

接着就是使用ALL_BUILD以及INSTALL分别生成,总计耗时不少于2小时,慢慢等着就行。
在这里插入图片描述

以上就是opencv-4.7.0编译安装CUDA以及opencv-contrib-4.7.0的完整过程。

END

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

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

相关文章

达尔文——生物医疗科学领域大模型

赛灵力官网 1. 生物医疗领域的挑战 1.1 复杂性 生物系统和生物过程非常复杂,包含大量的相互作用和调控机制,理解和解析这些复杂性是一项巨大的挑战。 举例来说,单单一个人类,体内的生物信息就非常复杂: 人类体内体内…

Django_re_path_使用正则匹配url

与path定义的路由相比,re_path 定义的路由可以使用正则表达式匹配url。 需要注意的是: 如果未定义匹配结果的变量名,匹配的结果默认传入视图的第2个形参。如果定义了匹配结果的变量名,匹配的结果会传给视图的同名字段&#xff0…

从零开始学习自动驾驶决策规划

从零开始学习自动驾驶决策规划 从入门到掌握的一系列讲解,其中涵盖的内容如下: 前言课 第一节-ros工程的创建 第一节-运行环境和工程目录简介第二节-工程运行和小车模型搭建简介 第二节-车辆里程计第三节-整体架构思路 第三节-地图路线构建方法 第三节…

Packet Tracer – 配置静态 NAT

Packet Tracer – 配置静态 NAT 目标 第 1 部分:测试不使用 NAT 的访问 第 2 部分:配置静态 NAT 第 3 部分:测试使用 NAT 的访问 拓扑图 场景 在 IPv4 配置网络中,客户端和服务器使用专用编址。 然后,在含专用编址…

MATLAB---线性规划问题求最优解(含例题)

线性规划是运筹学的基础,在现实企业经营中,如何有效的利用有限的人力、财力、物力等资源。 MATLAB 为方便大家理解,这里我们直接用一个例题为大家讲解使用matlab求解线性规划问题。 根据上图给出的线性规划问题。我们使…

SpringBoot 如何使用 @ExceptionHandler 注解进行局部异常处理

SpringBoot 如何使用 ExceptionHandler 注解进行局部异常处理 介绍 在开发 Web 应用程序时,异常处理是非常重要的一部分。SpringBoot 提供了多种方式来处理异常,其中之一是使用 ExceptionHandler 注解进行局部异常处理。使用 ExceptionHandler 注解&am…

哈工大计算网络课程数据链路层详解之:数据链路层服务

哈工大计算网络课程数据链路层详解之:数据链路层服务 在介绍完网络层的实现功能和协议之后,接下来我们继续介绍网络层的下一层:数据链路层。 本节首先对数据链路层的功能和所提供的服务进行概述。 如下图示例网络所示,标红色的部…

【二分查找】34. 在排序数组中查找元素的第一个和最后一个位置

34. 在排序数组中查找元素的第一个和最后一个位置 解题思路 使用二分查找查找到目标元素的索引之后然后向左以及向右寻找目标元素,然后记录下区间位置 然后保存下来 class Solution {public int[] searchRange(int[] nums, int target) {// 使用二分查找 数组有序…

Java使用Stream API对于数据列表经常处理

Java使用Stream API对于数据列表经常处理 先提供一些简单到复杂的常见例子&#xff0c;您可以根据这些例子进行进一步的开发和学习&#xff1a; 数据过滤筛选操作 查询表中所有数据&#xff1a; List<User> users userDao.getAllUsers();根据条件查询单个结果&#…

别测了,背锅上线!

三百六十行&#xff0c;行行都背锅。 用例千万条&#xff0c;质量第一条。 流程不规范&#xff0c;亲人两行泪&#xff01; 每次上线后多多少少都有些问题&#xff0c;每次的项目总结会总会生产一口新锅&#xff0c;等着你我他来背&#xff0c;这不又要上线了&#xff0c;这次…

华为OD机试真题 Java 实现【快递投放问题】【2023 B卷 100分】,附详细解题思路

目录 一、题目描述二、输入描述三、输出描述四、Java算法源码五、效果展示1、输入2、输出 一、题目描述 有N个快递站点用字符串标识&#xff0c;某些站点之间有道路连接。每个站点有一些包裹要运输&#xff0c;每个站点间的包裹不重复&#xff0c;路上有检查站会导致部分货物无…

基于kubernetes组件初步部署k8s

基于k8s组件初步部署k8s kubernetes组件kubernetes简单化部署安装Master操作环境检查安装配置Containerd安装Containerd配置containerd启动containerd 配置Circtl安装配置Kubeadm安装Kubeadmkubeadm配置启动kubelet服务 拉取镜像初始化集群操作命令行 安装网络插件 Node操作Nod…

Dubbo分布式服务框架,springboot+dubbo+zookeeper

一Dubbo的简易介绍 1.Dubbo是什么&#xff1f; Dubbo是一个分布式服务框架&#xff0c;致力于提供高性能和透明化的RPC远程服务调用方案&#xff0c;以及SOA服务治理方案。 简单的说&#xff0c;dubbo就是个服务框架&#xff0c;如果没有分布式的需求&#xff0c;其实是不需…

N天爆肝数据库——MySQL(1)

数据库概念理解 数据库 DB 存储数据的仓库 数据库管理系统 DBMS 操纵和管理数据库的大型软件 SQL 操作关系型数据库的编程语言&#xff0c;定义了用一套操作关系型数据库同意标准 学习 SQL 的作用 SQL 是一门 ANSI 的标准计算机语言&#xff0c;用来访问和操作数据库系统。S…

在北京买房究竟需要多少钱?

无论是来北京前&#xff0c;还是来北京后&#xff0c;每每提起北京的房价&#xff0c;大家都会说出三个字「买不起」。 确实&#xff0c;北京房价非常贵&#xff0c;但是究竟「贵」到什么程度&#xff0c;我们却无法说出一个数。 几年前&#xff0c;我研三还没毕业时&#xf…

Linux高频常用指令汇总

目录 认识 Linux 目录结构 绝对路径&#xff1a;以根目录开头的, 称为绝对路径 相对路径&#xff1a;不是根目录开头的,称为相对路径 ls pwd cd mkdir touch cat echo rm cp mv vim编辑器 1、进入文件 2、进行编辑模式 3、保存退出 重要的几个热键[Tab],[ct…

SpringBoot中间件——封装限流器

背景 通常能知道一个系统服务在正产增速下流量大小&#xff0c;扩容与压测也是基于此。若有突发或者恶意攻击访问&#xff0c;都要将流量拦截在外。这部分功能不属于业务侧&#xff0c;它是通用非业务的共性需求&#xff0c;所以我们将共性抽取为限流中间件。 方案设计 图解&…

基于微信小程序的高校食堂点餐系统设计与实现(Java+spring boot+MySQL+微信小程序)

获取源码或者论文请私信博主 演示视频&#xff1a; 基于微信小程序的高校食堂点餐系统设计与实现&#xff08;Javaspring bootMySQL微信小程序&#xff09; 使用技术&#xff1a; 前端&#xff1a;html css javascript jQuery ajax thymeleaf 微信小程序 后端&#xff1a;Java…

指针-->笔试题(必备)

前言&#xff1a; 目录 前言&#xff1a; 本章介绍的指针笔试题是有点难度的&#xff0c;得花费一点时间来理解&#xff0c;并且我们在做题目的时候需要画图来理解。 文章目录 笔试题1 笔试题2 笔试题3 笔试题4 笔试题5 笔试题6 笔试题7 笔试题8 笔试题1 int main() {int a[5…

uniapp下载和上传照片

利用uniapp开发的时候&#xff0c;需要下载和上传照片&#xff0c;在H5和微信小程序中的写法不一样。 H5环境下 浏览器中下载就是模拟超链接下载。也不需要获取什么权限&#xff0c;比较简单。 // #ifdef H5 this.isLoading true; let oA document.createElement("a&…