【opencv】windows10下opencv4.8.0-cuda版本源码编译教程

【opencv】windows10下opencv4.8.0-cuda版本源码编译教程

提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论

文章目录

  • 【opencv】windows10下opencv4.8.0-cuda版本源码编译教程
  • 前言
  • 准备工具
    • cuda/cudnn
    • cmake
    • opencv4.5.0
    • opencv_contrib
  • CMake编译
  • VS2019编译
  • 可能出现的问题
    • cmake编译过程中可能出现的问题
    • VS2019编译过程中可能出现的问题
    • 通常是对于部分资源,vs2019没有管理员操作权限,因此只需要用管理员身份重新打开进行操作即可。 ![](https://img-blog.csdnimg.cn/9d8f1254be3f4e40a95485ca3fec5670.png)
  • 测试使用GPU
  • 总结


前言

OpenCV是一个开源的计算机视觉库,包含了核心模块和扩展模块,提供了基础的图像处理和计算机视觉算法,以及一些机器学习工具。而OpenCV Contrib是OpenCV社区贡献的一组扩展模块之一,包含了一些较为新颖和实用的算法和工具函数,提供了一些高级的图像处理和计算机视觉算法。这些功能和算法可能不适合所有用户或者还处于实验性阶段。OpenCV Contrib模块中的代码由社区贡献者开发和维护,它们提供了一些在OpenCV核心库中尚未包含的新特性和实验性功能。


准备工具

cmake、vs2019、opencv4.8.0、opencv_contrib-4.8.0、cuda、cudnn

cuda/cudnn

安装cuda、cudnn可以参考此前博主的【深度学习windows10环境配置详细教程】,因为对于新手来说,需要注意的细节比较多,这里不浪费篇幅重复讲述了。

cmake

CMake官方下载地址,下载cmake-3.27.7-windows-x86_64.msi。

添加到环境和安装路径博主根据自身情况作出了修改,其他都是默认安装。

出现以下界面安装成功。

opencv4.5.0

Opencv官方下载地址,下载OpenCV – 4.8.0 Sources,下载解压opencv-4.8.0.zip。

opencv_contrib

opencv_contrib官方下载地址,选择opencv对应的contrib版本,例如opencv4.8.0对应就是opencv_contrib-4.8.0.zip。下载后直接解压。


CMake编译

  1. 打开CMake,where is the source code是Opencv sources(博主是opencv-4.8.0)的文件夹位置,where to build the binaries是编译opencv保存的文件夹位置(自定义),最后点左下角Configure。
  2. 选择对应vs的版本(博主是vs2019),系统选择x64,最后点右下角Finish。
  3. 显示Configuring done后,在Search搜索框搜索带cuda的关键字,全部勾选。
  4. Search搜索框搜索OPENCV_EXTRA_MODULES_PATH,添加解压的opencv_contrib中的modules的路径,再搜索并勾选OPENCV_ENABLE_NONFREE和 ENABLE_FAST_MATH选项。
  5. 将build_opencv_world选上,这可以将所有opencv的库都编译在一起,不需要自己手动选择添加每个小模块,但是具体的工程又不建议这种全家桶,再次点击Configure。
  6. 显示Configuring done后,将CUDA_ARCH_BIN显卡算力内容改成自己显卡的算力。官网查看显卡算力地址,删除小于自己显卡算力的部分,再次点击Configure。
  7. 显示Configuring done后,点击generate,显示generating done,成功完成cmake编译,在输出的opencv保存文件夹位置中存在就生成了OpenCV.sln文件。

cmake编译过程是会从githup上下载数据,但是一般都会出现下载失败的情况,这里建议读者先跳到【可能出现的问题】这一小节,来确认是不是自己也出现了下载失败的情况。


VS2019编译

  1. 使用VS2019 (以管理员方式运行) 打开刚刚编译工程OpenCV.sln,在release|x64模式下,在解决方案资源管理器—>CMakeTargets—>右键点击ALL_BUILD–>生成。
  2. 同样在release|x64模式下,在解决方案资源管理器—>CMakeTargets—>右键点击INSTALL–>生成。

编译完成后在where to build the binaries位置的install文件夹内生成以下内容。


可能出现的问题

cmake编译过程中可能出现的问题

cmake编译出现Download failed的问题。

在where to build the binaries位置里面有个CMakeDownloadLog.txt,将里面下载链接复制到浏览器进行下载,

将其和where is the source code里面的.cache文件夹里面内容相对应,下图是下载失败时候,文件大小是0KB,手动下载完成后进行替换,对于部分文件则需要从网页复制文本内容到其中。

注意用来替换的文件的名称要与对应空文件的名称保持一致。


将整个.cache都用同样的方式进行处理。

强调一点,出现这种问题,可以暂时先走完CMake编译过程,因为每一次Configuring都会有新的下载内容,然后再一次性将.cache的内容进行完整的替换,最后进行Configuring和Generate。

VS2019编译过程中可能出现的问题

通常是对于部分资源,vs2019没有管理员操作权限,因此只需要用管理员身份重新打开进行操作即可。

测试使用GPU

这里用一段简单的c++代码验证安装完成的opencv是否支持gpu设备。

#include <opencv2/opencv.hpp>
#include <opencv2/core/cuda.hpp>
int main() {// 检查是否支持CUDAif (cv::cuda::getCudaEnabledDeviceCount()) {std::cout << "检测到支持CUDA的设备数量" << cv::cuda::getCudaEnabledDeviceCount() <<std::endl;}else {std::cout << "未检测到支持CUDA的设备" << std::endl;}return 0;
}

验证成功,oepncv-cuda版本源码编译成功。


总结

尽可能简单、详细的介绍windows10下opencv4.8.0-cuda版本用源码进行编译的详细流程。

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

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

相关文章

【Java 进阶篇】CSS盒子模型详解

CSS盒子模型是网页布局的基础之一&#xff0c;它定义了HTML元素在页面上的占用空间和相互关系。理解CSS盒子模型对于构建各种类型的网页布局至关重要。在本文中&#xff0c;我们将深入探讨CSS盒子模型的各个方面&#xff0c;包括盒子模型的概念、属性和如何使用它们来控制元素的…

Data security.隐私保护-多方安全计算技术基础

文章目录 Data security.隐私保护-多方安全计算技术基础一、多方安全计算的背景1.定义2.分类2.1不诚实参与方数量2.2敌手行为2.3敌手计算能力2.4输出可达性2.5计算模型2.6腐化策略&#xff08;攻击者确定攻破并控制参与方的策略&#xff09;2.7通信网络 3.设计方法3.1秘密共享&…

如何在Apache和Resin环境中实现HTTP到HTTPS的自动跳转:一次全面的探讨与实践

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

设计模式 - 观察者模式

目录 一. 前言 二. 实现 三. 优缺点 一. 前言 观察者模式属于行为型模式。在程序设计中&#xff0c;观察者模式通常由两个对象组成&#xff1a;观察者和被观察者。当被观察者状态发生改变时&#xff0c;它会通知所有的观察者对象&#xff0c;使他们能够及时做出响应&#xf…

rustlings本地开发环境配置

克隆自己的仓库 首先我们要在github上找到自己仓库并把它克隆到本地 git clone https://github.com/LearningOS/rust-rustlings-2023-autumn-******.git下载插件 rust-analyzer和Git Graph一个可以用来解析rust代码&#xff0c;另一个可以可视化管理git代码库 下载rustling…

基于安卓android微信小程序音乐播放器

运行环境 小程序前端框架&#xff1a;uniapp 小程序运行软件&#xff1a;微信开发者 后端技术:javaSsm(SpringSpringMVCMyBatis)vue.js 后端开发环境:idea/eclipse 数据库:mysql 项目介绍 音乐播放器小程序的设计主要是对系统所要实现的功能进行详细考虑&#xff0c;确定所要…

SpringCloud学习二

基本介绍&#xff1a; Eureka Server&#xff08;Eureka 服务端&#xff09;是Netflix开源的一款用于构建分布式系统中的服务发现和注册中心的组件。它在微服务架构中扮演着关键的角色&#xff0c;允许不同的微服务应用程序注册自己&#xff0c;并查询其他服务的位置信息&…

Rust专属开发工具——RustRover发布

JetBrains最近推出的Rust集成开发工具——RustRover已经发布&#xff0c;官方网站&#xff1a;RustRover: Rust IDE by JetBrains JetBrains出品过很受欢迎的开发工具IntelliJ IDEA、PyCharm等。 RustRover优势 Rust集成环境&#xff0c;根据向导可自动下载安装rust开发环境提…

Hadoop-2.5.2平台环境搭建遇到的问题

文章目录 一、集群环境二、MySQL2.1 MySQL初始化失败2.2 MySQL启动报错2.3 启动时报不能打开日志错2.4 mysql启动时pid报错 二、Hive2.1 Hive修改core-site.xml文件后刷新权限2.2 Hive启动元数据时报错2.3 Hive初始化MySQL报错2.3.1 报错信息2.3.2 错误原因2.3.3 参考文档 2.4 …

归纳所猜半结论推出完整结论:CF1592F1

https://www.luogu.com.cn/problem/CF1592F1 场上猜了个结论&#xff0c;感觉只会操作1。然后被样例1hack了。然后就猜如果 ( n , m ) (n,m) (n,m) 为1则翻转4操作&#xff0c;被#14hack了。然后就猜4操作只会进行一次&#xff0c;然后就不知道怎么做下去了。 上面猜的结论都…

[CISCN2019 总决赛 Day2 Web1]Easyweb 盲注 \\0绕过 文件上传文件名木马

首先开局登入 我们开始目录扫描 扫除 robots.txt 现在只有三个文件 最后发现 只有 image.php.bak存在 这里主要的地方是 \\0 因为第一个\会被转义 这里就会变为 \0 表示空白 那我们sql语句就会变为了 select * from images where id\0 但是这里我们不可以使用 \\ 因为…

计算机视觉--距离变换算法

计算机视觉 文章目录 计算机视觉前言距离变换 总结 前言 计算机视觉CV是人工智能一个非常重要的领域。 在本次的距离变换任务中&#xff0c;我们将使用D4距离度量方法来对图像进行处理。通过这次实验&#xff0c;我们可以更好地理解距离度量在计算机视觉中的应用。希望大家对计…

Arcgis日常天坑问题(1)——将Revit模型转为slpk数据卡住不前

这段时间碰到这么一个问题&#xff0c;revit模型在arcgis pro里导出slpk的时候&#xff0c;卡在98%一直不动&#xff0c;大约有两个小时。 首先想到的是revit模型过大&#xff0c;接近300M。然后各种减小模型测试&#xff0c;还是一样的问题&#xff0c;大概花了两天的时间&am…

基于ffmpeg给视频添加时间字幕

FFmpeg是一套可以用来记录、转换数字音频、视频&#xff0c;并能将其转化为流的开源计算机程序&#xff0c;我们可以基于ffmpeg对视频进行各种操作。本文主要介绍基于ffmpeg给视频添加字幕&#xff0c;字幕的内容为视频所播放的时间&#xff08;故需要安装ffmpeg&#xff0c;具…

【Python】实现excel文档中指定工作表数据的更新操作

在做数值计算时&#xff0c;个人比较习惯利用excel文档的公式做数值计算进行对比&#xff0c;检查异常&#xff0c;虽然计算量大后&#xff0c;excel计算会比较缓慢&#xff0c;但设计简单&#xff0c;易排错 但一般测试过程中使用到的数据都不是最终数值&#xff0c;会不停根据…

【chrome基础】Chrome、Chromium、libcef、electron版本关系大揭秘!

文章目录 概述chrome、Chromium、cef、electron 版本管理chrome的各种概念和学习资料V8 bindings 设计谷歌V8引擎探秘&#xff1a;基础概念Chrome 的插件&#xff08;Plugin&#xff09;与扩展&#xff08;Extension&#xff09;Chrome插件开发 概述 Chrome、Chromium、libcef、…

使用GitLab CI/CD 定时运行Playwright自动化测试用例

创建项目并上传到GitLab npm init playwright@latest test-playwright # 一路enter cd test-playwright # 运行测试用例 npx playwright test常用指令 # Runs the end-to-end tests. npx playwright test# Starts the interactive UI mode. npx playwright

Oracle 简介与 Docker Compose部署

最近&#xff0c;我翻阅了在之前公司工作时的笔记&#xff0c;偶然发现了一些有关数据库的记录。当初&#xff0c;我们的项目一开始采用的是 Oracle 数据库&#xff0c;但随着项目需求的变化&#xff0c;我们不得不转向使用 SQL Server。值得一提的是&#xff0c;公司之前采用的…

Servlet

Servlet Servlet是Java提供的一门动态web资源开发技术&#xff0c;其实就是一个接口&#xff08;规范&#xff09;&#xff0c;将来我们需要自定义Servlet类实现Servlet接口即可&#xff0c;并由web服务器运行Servlet。 快速入门 创建Web项目&#xff0c;导入Servlet依赖坐标…

linux 安装下载conda并创建虚拟环境

目录 1. 下载安装2. 创建虚拟环境1. 下载安装 在window操作系统中下载anconda包,并通过scp传输到ubuntu操作系统 具体anconda包在如下界面: anconda包 目录 博主选择了最新的包:Anaconda3-2023.09-0-Linux-x86_64.sh 通过scp传输到ubuntu操作系统中: 并在ubuntu操作系…