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

news2024/11/17 14:43:42

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

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

文章目录

  • 【opencv】windows10下opencv4.8.0-cuda C++版本源码编译教程
  • 前言
  • 准备工具
    • cuda/cudnn
    • cmake
    • opencv4.8.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.8.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的库都编译在一起,不需要自己手动选择添加每个小模块,但是具体的工程又不建议这种全家桶。
  6. 假如不需要python、java、js、tests相关选项,可以分别搜索“python”,“java”,“js”,“tests”取消勾选相关选项,再次点击Configure
  7. 显示Configuring done后,将CUDA_ARCH_BIN显卡算力内容改成自己显卡的算力。官网查看显卡算力地址,删除小于自己显卡算力的部分,再次点击Configure。
  8. 显示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() {
    // 检查是否支持CUDA
    if (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.coloradmin.cn/o/1083086.html

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

相关文章

速通RabbitMQ的五种常见消费模型

目录 引言1. 简单队列模型&#xff08;Simple Queue Model&#xff09;优缺点及适用场景代码示例 2. 工作队列模型&#xff08;Work Queue Model&#xff09;优缺点及适用场景代码示例 3. 发布/订阅模型&#xff08;Publish/Subscribe Model&#xff09;优缺点及适用场景代码示…

Rockchip平台 远程OTA服务搭建

Rockchip平台 远程OTA服务搭建 1. 概述 远程OTA升级服务是一种通过互联网远程更新Rockchip设备的固件和软件的方法。这种服务对于确保设备安全性、修复错误和添加新功能非常重要。 本文档将引导您完成在Rockchip平台上搭建远程OTA升级服务的过程。 在阅读本文的前&#xff…

使用Cpolar内网穿透技术实现远程访问内网BUG管理系统

文章目录 前言1. 本地安装配置BUG管理系统2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射本地服务3. 测试公网远程访问4. 配置固定二级子域名4.1 保留一个二级子域名5.1 配置二级子域名6. 使用固定二级子域名远程 前言 BUG管理软件,作为软件测试工程师的必备工具之一。在…

利用人工智能做射击游戏辅助(二)AlphaPose环境配置

一、anaconda安装 官网地址&#xff1a;Free Download | AnacondaAnacondas open-source Distribution is the easiest way to perform Python/R data science and machine learning on a single machine.https://www.anaconda.com/download 下载之后下一步就可以&#xff0c…

BCDD-A03-21-L3、BCDD-A02-33-L1比例方向阀控制器

BCDD-A02-31-L1、BCDD-A02-33-L3、BCDD-A02-21-S5、BCDD-A02-23-D5、BCDD-A03-31-L5、BCDD-A03-33-L1、BCDD-A03-21-L3、BCDD-A03-23-S5是直动式比例换向阀&#xff0c;通过比例电磁铁直接驱动阀芯工作。此类阀工作时是通过电子放大器提供比例电磁铁的驱动电流&#xff0c;比例…

哈夫曼树及哈夫曼编码详解及代码实现[C/C++]

文章目录 哈夫曼树及哈夫曼编码哈夫曼树的定义与原理引例路径长度定义 带权路径长度哈夫曼树哈夫曼树的构造方法构造方法示例 哈夫曼树的代码实现哈夫曼树的结点定义哈夫曼树的构造 哈夫曼编码哈夫曼编码方式哈夫曼编码解码的准确性 哈夫曼编码的代码实现运行示例 哈夫曼树及哈…

Android绑定式服务

Github:https://github.com/MADMAX110/Odometer 启动式服务对于后台操作很合适&#xff0c;不过需要一个更有交互性的服务。 接下来构建这样一个应用&#xff1a; 1、创建一个绑定式服务的基本版本&#xff0c;名为OdometerService 我们要为它增加一个方法getDistance()&#x…

PDF编辑软件哪个好用?PDF文档怎么编辑修改内容

在生活中&#xff0c;为了方便文件传输&#xff0c;会将文件扫描或转换成PDF格式&#xff0c;但是如果需要编辑修改会比较麻烦&#xff0c;这时一款好用的PDF编辑器显得十分重要。今天就带大家了解下PDF编辑软件哪个好用&#xff0c;PDF文档怎么编辑修改内容。 一、PDF编辑软件…

【Android 从入门到出门】第一章:Android开发技能入门指南

&#x1f935;‍♂️ 个人主页&#xff1a;艾迦洼的个人主页 ✍&#x1f3fb;作者简介&#xff1a;后端程序猿 &#x1f604; 希望大家多多支持&#xff0c;如果文章对你有帮助的话&#xff0c;欢迎 &#x1f4ac;&#x1f44d;&#x1f3fb;&#x1f4c2; 目录 &#x1f44b;第…

C#(Csharp)我的基础教程(三)(我的菜鸟教程笔记)-控件对象与窗体容器集合(Control)的探究与学习

目录 1、窗体类&#xff08;主代码文件窗体设计器后台代码文件&#xff09;2、控件对象与窗体容器集合&#xff08;Control&#xff09; 1、窗体类&#xff08;主代码文件窗体设计器后台代码文件&#xff09; 主窗体对象的创建&#xff1a;在Program类里面&#xff1a; Appli…

Windows操作系统登录双因素认证解决方案 安当加密

实现Windows操作系统登录双因素认证&#xff0c;可以通过安当ASP身份认证平台进行设置。安当ASP身份认证平台提供了多种双因素认证方式&#xff0c;包括USB Key ID、OTP&#xff08;动态口令&#xff09;等&#xff0c;可以灵活选择和配置。 以下是使用安当ASP身份认证平台的US…

2023 家电行业品牌社媒营销洞察报告

过去三年的疫情&#xff0c;给人们的生活和消费方式都带来了极大的改变。直播电商、社交电商的兴起&#xff0c;也带动了传统线下家电零售商向线上渠道发展&#xff0c;传统大家电“重获新生”&#xff0c;新兴小家电“冉冉升起”&#xff0c;成为了业绩增长的新引擎。 2023年&…

c++视觉处理---拉普拉斯金字塔和高斯金字塔

拉普拉斯金字塔和高斯金字塔 拉普拉斯金字塔&#xff08;Laplacian Pyramid&#xff09;和高斯金字塔&#xff08;Gaussian Pyramid&#xff09;是两种不同类型的图像金字塔&#xff0c;用于多尺度图像处理和特征提取。它们之间的主要区别在于它们所包含的信息和用途&#xff…

ROS仿真软件Turtlebot-Gazebo的安装使用以及错误处理[机器人避障]

很多时候由于机器人价格比较贵&#xff0c;而且会因为环境因素、操作失误或者摔坏等&#xff0c;所以我们可以先在仿真软件上做测试&#xff0c;也可以避免这些问题&#xff0c;虽然没有那么真实感&#xff0c;可毕竟是免费的嘛。我们可以在这些仿真的机器人身上去学习如何控制…

格式化硬盘时提示“此驱动器正在使用”解决占用问题

Windows 11 或 Windows 10 的大多数问题都有一个很好的解决方案——格式化系统驱动器并重新安装 Windows。或者有时&#xff0c;我们可能只想擦除数据驱动器上的所有文件和文件夹&#xff0c;例如。D 盘、E 盘等。为此&#xff0c;我们只需右键单击 Windows 文件资源管理器的 P…

深度学习batch、batch_size、epoch、iteration以及小样本中episode、support set、query set关系

batch、batch_size、epoch、iteration关系&#xff1a; epoch&#xff1a;整个数据集 batch&#xff1a; 整个数据集分成多少小块进行训练 batch_size&#xff1a; 一次训练&#xff08;1 batch&#xff09;需要 batch_size个样本 iteration&#xff1a; 整个数据集需要用b…

深度学习简述

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ &#x1f434;作者&#xff1a;秋无之地 &#x1f434;简介&#xff1a;CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作&#xff0c;主要擅长领域有&#xff1a;爬虫、后端、大数据…

MT8390(Genio 700)安卓核心板参数_联发科MTK智能模组

MT8390安卓核心板是一款功能强大且高度集成的平台&#xff0c;专为广泛的人工智能(AI)和物联网(IoT)应用案例而设计。它具备高性能边缘处理、先进的多媒体和连接能力、多个高分辨率摄像头、连接的触摸屏显示以及多任务高级操作系统的使用。 MT8390安卓核心板采用了高性能的八核…

保护互联网数据安全:关键方法与最佳实践

在当今数字化时代&#xff0c;互联网数据安全已经成为个人、企业和组织的首要任务之一。随着信息技术的迅猛发展&#xff0c;网络威胁也不断演进&#xff0c;因此保护互联网数据安全变得尤为关键。本文将介绍一些关键方法和最佳实践&#xff0c;帮助您确保互联网数据的安全性。…

从零学算法(LCR 187. 破冰游戏)

社团共有 num 为成员参与破冰游戏&#xff0c;编号为 0 ~ num-1。成员们按照编号顺序围绕圆桌而坐。社长抽取一个数字 target&#xff0c;从 0 号成员起开始计数&#xff0c;排在第 target 位的成员离开圆桌&#xff0c;且成员离开后从下一个成员开始计数。请返回游戏结束时最后…