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

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.hqwc.cn/news/20264.html

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

相关文章

我爱学QT-QT信号和槽

1.给控件改名字 为了分析代码方便,我们要给控件改名字。要通俗易懂。 2.信号和槽 信号:信号就是指控件发出的特定的信号。 比如按钮的信号 槽:槽就是槽函数的意思,我们可以把槽函数绑定在某一个控件的信号上。 3.怎么关联信号…

【无公网IP端口映射】远程访问本地jupyter notebook服务

文章目录 前言1. Python环境安装2. Jupyter 安装3. 启动Jupyter Notebook4. 远程访问4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5. 固定公网地址 前言 Jupyter Notebook,它是一个交互式的数据科学和计算环境,支持多种编程语言,如…

学无止境·MySQL⑦(索引和视图)

索引和视图练习 索引练习1、建立一个utf8编码的数据库test12、建立商品表goods和栏目表category3、删除 goods 表中的 goods_desc 字段及货号字段,并增加 click_count 字段4、在 goods_name 列上加唯一性索引(用alter table方式)5、在 shop_price 列上加…

云之道知识付费V2小程序V3.1.1独立平台版安装使用教程

据播播资源了解,云之道知识付费小程序是一款专注于知识付费的小程序源码,为内容创业者、自媒体和教育培训机构提供全方位的互联网解决方案。 由播播资源小编全套安装云之道知识付费V2独立版系统,系统支持无限多开,相比上几版出现…

Tenable Nessus 10.5.3 (Unix, Linux, Windows) - #1 漏洞评估解决方案

Tenable Nessus 10.5.3 (Unix, Linux, Windows) - #1 漏洞评估解决方案 发布 Nessus 试用版自动化安装程序,支持 macOS Ventura、RHEL 9 和 Ubuntu 22.04 请访问原文链接:https://sysin.org/blog/nessus-10/,查看最新版。原创作品&#xff…

typescript helloword

创建文件夹 创建ch01文件夹 新建tsconfig.json {"compilerOptions": {"strict": true,"target": "ES5"} }“tsconfig.json”是TypeScript编译器默认使⽤的配置⽂件。此例中的配置⽂件启⽤了所有的严格类型检查编译选项,…

小平板 大智慧-嵌入式方案满足教育市场多元需求

线上教育观念的深入和技术的更新,直接拉动了教育类硬件及相关终端设备的市场需求。 产品框图 IDO-SBC3566采用瑞芯微RK3566, CPU采用4核A55架构处理器,集成G52图形处理器,内置独立NPU,算力高达1Tops,可满足…

怎样优雅地增删查改(四):创建通用查询基类

文章目录 创建通用查询抽象层创建通用查询应用层基类创建通用查询控制器基类[可选]替换RESTfulApi扩展泛型参数服务的“渐进式”使用 上一章我们实现了Employee管理模块,Employee的增删改查是通过其应用服务类,继承自Abp.Application.Services.CrudAppSe…

C++—C++程序基础

文章目录 1 数据类型1.1 基本数据类型1.2 字面值常量1.3 左值和右值1.4 引用与指针 2 基本输入输出2.1 输出2.2 输入 3 函数3.1 内联函数3.2 函数的重载 1 数据类型 1.1 基本数据类型 在C中,除了C语言中的int,char,float,double…

(37)安全开关

文章目录 前言 37.1 LED的含义 37.2 配置安全开关 37.3 使用安全开关强制更新I/O板固件 前言 一个安全开关可以用来启用/禁用电机和伺服的输出。该开关控制飞行器的"安全"状态。当处于这种状态时,电机被阻止运行(除了在 Planes MANUAL 模…

Redis 实现库存扣减

在日常开发中有很多地方都有类似扣减库存的操作,比如电商系统中的商品库存,抽奖系统中的奖品库存等。这次分享的是库存的操作怎么防止商品被超卖。 解决方案 基于数据库单库存基于数据库多库存基于redis 解决思路 使用mysql数据库,使用一个…

【javaEE面试题(四)线程不安全的原因】【1. 修改共享数据 2. 操作不是原子性 3. 内存可见性 4. 代码顺序性】

4. 多线程带来的的风险-线程安全 (重点) 4.1 观察线程不安全 static class Counter {public int count 0;void increase() {count;} } public static void main(String[] args) throws InterruptedException {final Counter counter new Counter();Thread t1 new Thread(()…