windows OpenCV(包含cuda)最简安装教程
windows OpenCV(包含cuda)最简安装教程
1. 在Windows下安装vcpkg
vcpkg是一个开源的C++包管理器,它能帮助我们轻松地安装和管理C++库和工具。要在Windows上安装vcpkg,可以按照以下步骤进行:
-
克隆vcpkg仓库:
首先,打开命令提示符或者PowerShell,然后执行以下命令来克隆vcpkg的GitHub仓库到本地目录(例如:C:\tools\vcpkg):git clone https://github.com/microsoft/vcpkg -
构建vcpkg:
接下来,导航到vcpkg的目录,并执行bootstrap-vcpkg.bat脚本来构建vcpkg。例如,如果您将vcpkg仓库克隆到C:\tools\vcpkg,则可以执行以下命令:cd C:\tools\vcpkg .\bootstrap-vcpkg.bat
如果在运行 bootstrap-vcpkg.bat 时出现权限错误,请以管理员身份运行命令提示符
通过上述步骤,您应该已经在Windows上成功安装了vcpkg。现在,您可以使用vcpkg来安装和管理您项目所需的C++库和工具。例如,要安装SFML库,可以运行vcpkg install opencv4命令。
2. 安装CUDA工具包和配置环境变量(可选,如果不需要GPU部分可以跳过)
2.1. 预备条件
为了获得最新的操作系统、CUDA、CUDA驱动和NVIDIA硬件的兼容软件版本,请参考NVIDIA cuDNN支持矩阵。
2.1.1. 安装NVIDIA图形驱动
在您的Windows系统上安装最新的NVIDIA图形驱动。
- 访问:NVIDIA下载驱动程序
- 从下拉菜单中选择GPU和操作系统版本。
- 按照网页上的指示下载并安装NVIDIA驱动程序。如需更多信息,请选择ADDITIONAL INFORMATION标签,查看安装驱动程序的逐步指南。
- 重新启动您的系统以确保图形驱动程序生效。
2.1.2. 安装Windows的CUDA工具包
请参考以下说明来安装Windows上的CUDA,包括CUDA驱动和工具包:NVIDIA CUDA安装指南。
2.2. 为Windows下载cuDNN
为了下载cuDNN,请确保您已注册NVIDIA Developer Program。
- 访问:NVIDIA cuDNN主页。
- 点击“Download”。
- 完成简短的调查并点击“Submit”。
- 接受条款和条件。将显示cuDNN的可用下载版本列表。
- 选择您想要安装的cuDNN版本。将显示可用资源的列表。
- 下载Windows的cuDNN包(zip格式)。
2.3. 在Windows上安装
以下步骤描述了如何构建依赖于cuDNN的程序。
请将8.x和8.x.y.z替换为您的特定cuDNN版本。
在以下步骤中,包目录路径被称为。
-
导航到包含cuDNN包的目录。
-
解压cuDNN包。
cudnn-windows-x86_64-*-archive.zip -
将解压包中的以下文件复制到NVIDIA cuDNN目录。
- 复制
bin\cudnn*.dll到C:\Program Files\NVIDIA\CUDNN\v8.x\bin。 - 复制
include\cudnn*.h到C:\Program Files\NVIDIA\CUDNN\v8.x\include。 - 复制
lib\cudnn*.lib到C:\Program Files\NVIDIA\CUDNN\v8.x\lib。
- 复制
-
设置以下环境变量以指向cuDNN的位置。要访问$(PATH)环境变量的值,请执行以下步骤:
- 从开始菜单打开命令提示符。
- 输入Run并按Enter键。
- 输入
control sysdm.cpl命令。 - 在窗口顶部选择“Advanced”标签。
- 在窗口底部点击“Environment Variables”。
- 将NVIDIA cuDNN bin目录路径添加到PATH变量:
- 变量名:PATH
- 要添加的值:
C:\Program Files\NVIDIA\CUDNN\v8.x\bin
通过以上步骤,您应该能够在Windows系统上成功地安装和配置cuDNN。在完成这些步骤后,您将能够开始构建和运行依赖于cuDNN的程序和项目。
3. 使用vcpkg安装OpenCV
在安装了vcpkg之后,您可以很容易地安装OpenCV库。以下是基本步骤:
- 打开命令提示符或PowerShell。
- 运行命令
vcpkg install opencv4[core,cuda]:x64-windows来安装OpenCV和CUDA模块。
4. 使用CMake配置文件和vcpkg
在安装了OpenCV和CUDA之后,您需要配置CMake以便能够在您的项目中使用它们。以下是基本步骤:
- 创建一个新的CMake项目,或打开现有的CMake项目。
- 在CMakeLists.txt文件中,使用
find_package命令来找到OpenCV库。 - 例如,添加以下行到您的CMakeLists.txt文件:
find_package(OpenCV REQUIRED)
target_link_libraries(your_target_name PRIVATE ${OpenCV_LIBS})
- 配置CMake以使用vcpkg的工具链文件,方法是在命令行中添加以下参数:
-DCMAKE_TOOLCHAIN_FILE=C:/tools/vcpkg/scripts/buildsystems/vcpkg.cmake。
通过以上步骤,您应该能够在Windows系统上简单地安装和配置OpenCV(包含CUDA)。
相关文章:
windows OpenCV(包含cuda)最简安装教程
windows OpenCV(包含cuda)最简安装教程 1. 在Windows下安装vcpkg vcpkg是一个开源的C包管理器,它能帮助我们轻松地安装和管理C库和工具。要在Windows上安装vcpkg,可以按照以下步骤进行: 克隆vcpkg仓库: 首…...
Vue3 + Nodejs 实战 ,文件上传项目--实现文件批量上传(显示实时上传进度)
目录 技术栈 1.后端接口实现 2.前端实现 2.1 实现静态结构 2.2 整合上传文件的数据 2.3 实现一键上传文件 2.4 取消上传 博客主页:専心_前端,javascript,mysql-CSDN博客 系列专栏:vue3nodejs 实战--文件上传 前端代码仓库:jiangjunjie…...
狂砸40亿美元,亚马逊向OpenAI竞争对手Anthropic投资
9 月 25 日下午,亚马逊在公司官网发布,向大模型公司 Anthropic 投资 40 亿美元, Anthropic以拥有对标 ChatGPT 的谈天机器人 Claude 而出名。 这项新的战略合作将结合双方在更安全的生成式AI领域的技术和专业知识,加速Anthropic未…...
目标检测YOLO实战应用案例100讲-基于YOLOv5_tiny算法的路面裂缝智能检测
目录 前言 国内外研究现状 公路路面裂缝检测方法现状 基于深度学习检测算法现状...
P5682 [CSP-J2019 江西] 次大值% 运算 set 去重的一道好题
#include <bits/stdc.h> using namespace std; int n, x, len, a[100010], ans; set<int> s; set<int>::iterator asd; int main() {/*a[n-1] 是最大的a[n-2] 可能是次大的a[n]%a[n-1]<a[n-1] 不可能是最大的,可能是次大的a[n-1]%a[n-2]<…...
vue3后台管理框架之API接口统一管理
在开发项目的时候,接口可能很多需要统一管理。在src目录下去创建api文件夹去统一管理项目的接口; 参数请参考mock中的模拟接口 //统一管理咱们项目用户相关的接口import request from @/utils/requestimport type { loginForm, loginResponseData, userInfoReponseData } fro…...
线性表的插入、删除和查询操作
线性表的插入、删除和查询操作 1、定义线性表 定义一个线性结构,有列表默认长度设置为50,列表数量 #include <stdio.h> #define MaxSize 50typedef int Element; typedef struct{Element data[MaxSize];int length; }SqList;2、顺序表插入 插入…...
基于深度学习网络的疲劳驾驶检测算法matlab仿真
目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1疲劳检测理论概述 4.2 本课题说明 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 In_layer_Size [227 227 3]; img_size [224,…...
【文件系统】Linux文件系统的基本存储机制
Linux文件系统是Linux操作系统的重要组成部分,它负责管理计算机存储设备上的文件和目录。Linux文件系统采用类Unix的设计,具有强大的性能和可扩展性,支持多种文件系统类型,如ext4、XFS、Btrfs等。在项目存储架构的设计中ÿ…...
Outlook导入导出功能灰色,怎么解决
下载安装 Outlook 软件后,登陆账号,然后选择“文件” - “导出”,结果发现“导出”按钮是灰色的,根本无法导出。根据官方说法:由于配置没有完成或者office产品没有正确激活。outlook导出键为灰色原因由于配置没有完成或…...
Chrome 同站策略(SameSite)问题
问题产生 问题复现: A项目页面使用 iframe 引用了B项目 B项目登录页面输入账号密码后点击登录 无法跳转 尝试解决: 在B项目修改了跳转方式 但无论是 this.$router.push 还是 window.herf 都无法实现跳转在iframe中使用 sandbox 沙箱属性 同样无法实现跳…...
docker搭建nginx+php-fpm
docker run --name nginx -p 8898:80 -d nginx:1.20.2-alpine# 将容器nginx.conf文件复制到宿主机 docker cp nginx:/etc/nginx/nginx.conf /usr/local/nginx/conf/nginx.conf# 将容器conf.d文件夹下内容复制到宿主机 docker cp nginx:/etc/nginx/conf.d /usr/local/nginx/conf…...
数据结构与算法---单调栈结构
数据结构与算法---单调栈结构 1 滑动窗口问题 1 滑动窗口问题 1 滑动窗口问题 由一个代表题目,引出一种结构 【题目】 有一个整型数组 arr 和一个大小为 w 的窗口从数组的最左边滑到最右边,窗口每次向右边滑一个位置。 例如,数组为[4,3,…...
Python爬虫:某书平台的Authorization参数js逆向
⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ 🐴作者:秋无之地 🐴简介:CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作,主要擅长领域有:爬虫、后端、大数据开发、数据分析等。 🐴欢迎小伙伴们点赞👍🏻、收藏⭐️、…...
Android MediaCodec 框架 基于codec2
系列文章的目的是什么? 粗略: 解码需要哪些基础的服务?标准解码的调用流程?各个流程的作用是什么?解码框架的层次?各个层次的作用? 细化: 解码参数的配置?解码输入数…...
【RocketMQ 系列三】RocketMQ集群搭建(2m-2s-sync)
您好,我是码农飞哥(wei158556),感谢您阅读本文,欢迎一键三连哦。 💪🏻 1. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 Python从入门到精…...
Go TLS服务端绑定证书的几种方式
随着互联网的发展,网站提供的服务类型和规模不断扩大,同时也对Web服务的安全性提出了更高的要求。TLS(Transport Layer Security)[1]已然成为Web服务最重要的安全基础设施之一。默认情况下,一个TLS服务器通常只绑定一个证书[2],但…...
【算法与数据结构】--高级算法和数据结构--排序和搜索
一、常见排序算法 以下是一些常见的排序算法,包括冒泡排序、选择排序、插入排序、快速排序和归并排序。每种排序算法的讲解以及附带C#和Java示例: 1.1 冒泡排序 (Bubble Sort) 讲解: 冒泡排序是一种简单的比较排序算法。它多次遍历待排序的…...
【Java】jvm 元空间、常量池(了解)
JDK1.8 以前的 HotSpot JVM 有方法区,也叫永久代(permanent generation)方法区用于存放已被虚拟机加载的类信息,常量、静态遍历,即编译器编译后的代码JDK1.7 开始了方法区的部分移除:符号引用(S…...
Spring Boot自动加载
问:自动装配如何实现的? 答:简单来说就是自动去把第三方组件的Bean装载到IOC容器中,不需要开发人员再去写Bean相关的配置,在springboot应用里面只需要在启动类上去加上SpringBootApplication注解,就可以去实…...
IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...
SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...
深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...
Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...
