Windows 上下载、编译 OpenCV 并配置系统环境变量的详细步骤

news/2024/10/4 2:30:45/文章来源:https://blog.csdn.net/weixin_40841269/article/details/142308359

opencv

创作不易,您的打赏、关注、点赞、收藏和转发是我坚持下去的动力!

在 Windows 上下载并编译 OpenCV,然后配置系统环境变量的步骤如下:

1. 下载 OpenCV

  1. 打开 OpenCV 官方下载页面。
  2. 找到最新的 Windows 版本,点击下载,例如:opencv-4.x.x-vc14_vc15.exe,这将是一个自解压文件。
  3. 下载完成后,双击 opencv-4.x.x-vc14_vc15.exe 文件,选择一个目录将其解压,例如:C:\,解压后,你会得到一个文件夹,如:C:\opencv\

2. 安装 CMake

  1. 下载并安装 CMake(选择 Windows 64-bit 版本)。
  2. 安装完成后,将 CMake 添加到系统环境变量中(安装时可以选择自动添加)。

3. 配置 OpenCV 源码

  1. 进入解压后的 opencv 文件夹,你会看到一个 sources 文件夹,其中包含 OpenCV 源码。
  2. 为了编译 OpenCV,需要创建一个用于构建的目录,例如:C:\opencv\build

4. 使用 CMake 配置 OpenCV

  1. 打开 CMake GUI。
  2. Where is the source code: 中选择 OpenCV 的 sources 文件夹路径,如:C:\opencv\sources
  3. Where to build the binaries: 中选择刚才创建的 build 文件夹路径,如:C:\opencv\build
  4. 点击 “Configure” 按钮,弹出的窗口中选择你的编译器(例如,Visual Studio 16 2019)并选择构建平台(默认是 x64),然后点击“Finish”。
  5. CMake 开始检查环境并配置 OpenCV 编译设置。这个过程可能需要几分钟,完成后,CMake GUI 下方会显示一系列的配置选项。
  6. 在配置选项中,你可以选择你需要的模块,例如可以勾选 WITH_IPPWITH_CUDAWITH_OPENGL 等。如果不确定,可以保持默认设置。
  7. 再次点击 “Configure” 进行更新配置。
  8. 配置完成后,点击 “Generate” 生成 Visual Studio 项目文件。
  9. 生成完成后,点击 “Open Project” 打开生成的 Visual Studio 项目文件(.sln)。

5. 使用 Visual Studio 编译 OpenCV

  1. 在 Visual Studio 中打开 OpenCV.sln 项目文件。
  2. 选择 Release 模式,右键单击解决方案,选择 “生成解决方案”。这将会开始编译 OpenCV。编译时间较长,具体取决于你的电脑配置。
  3. 编译完成后,生成的库文件(.lib.dll)将位于 C:\opencv\build\install\x64\vc16\libC:\opencv\build\install\x64\vc16\bin 目录下。

6. 设置 OpenCV 系统环境变量

为了方便在其他项目中使用 OpenCV,需要将 OpenCV 的库路径添加到系统环境变量中。

  1. 打开 控制面板 > 系统和安全 > 系统 > 高级系统设置

  2. 在“高级”选项卡中,点击 “环境变量”。

  3. 在“系统变量”中找到 Path 变量,双击编辑。

  4. 点击 “新建”,添加以下路径:

    • OpenCV 的 bin 目录路径,例如:C:\opencv\build\install\x64\vc16\bin
  5. 你还可以创建一个新的系统变量,以便在 Visual Studio 项目中引用:

    • 点击 “新建”,名称为 OpenCV_DIR,值为 OpenCV 编译后的安装目录,例如:C:\opencv\build\install

7. 验证 OpenCV 安装

  1. 打开命令提示符,输入以下命令以验证环境变量是否正确设置:
    echo %OpenCV_DIR%
    
    如果显示的是你设置的 OpenCV 路径,说明环境变量配置成功。
  2. 编写一个简单的 OpenCV 程序进行测试,例如一个显示图像的程序。使用 Visual Studio 创建一个新的 C++ 项目,编写如下代码:
    #include <opencv2/opencv.hpp>int main() {cv::Mat image = cv::imread("path_to_your_image.jpg");if (image.empty()) {std::cout << "Could not open or find the image!" << std::endl;return -1;}cv::imshow("Display window", image);cv::waitKey(0);return 0;
    }
    
  3. 配置 Visual Studio 项目属性:
    • 在项目属性中,添加 OpenCV 头文件和库路径:
      • C/C++ -> 常规 -> 附加包含目录:添加 C:\opencv\build\install\include
      • 链接器 -> 常规 -> 附加库目录:添加 C:\opencv\build\install\x64\vc16\lib
    • 链接器 -> 输入 -> 附加依赖项 中,添加 OpenCV 库文件,例如:
      opencv_world460.lib  // 根据你安装的 OpenCV 版本号
      

8. 运行 OpenCV 测试程序

  1. 运行编译后的程序,如果看到弹出窗口显示图像,则说明 OpenCV 已经成功安装并配置完成。

完成这些步骤后,你就可以在 Windows 系统上使用 Visual Studio 编译和运行 OpenCV 项目了。

大家有技术交流指导、论文及技术文档写作指导、项目开发合作的需求可以搜索关注我私信我

在这里插入图片描述

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

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

相关文章

几种手段mfc140u.dll丢失的解决方法,了解mfc140u.dll

在使用Windows操作系统时&#xff0c;许多用户可能会遇到“找不到mfc140u.dll”或“mfc140u.dll未找到”的错误提示。这个错误通常是由于该文件丢失或损坏所致。本文将详细介绍mfc140u.dll文件的作用、丢失的原因及其解决方法&#xff0c;帮助您快速恢复系统的正常运行。 一、m…

MySQL高可用配置及故障切换

目录 引言 一、MHA简介 1.1 什么是MHA&#xff08;MasterHigh Availability&#xff09; 1.2 MHA的组成 1.3 MHA的特点 1.4 MHA工作原理 二、搭建MySQL MHA 2.1 实验思路 2.2 实验环境 1、关闭防火墙和安全增强系统 2、修改三台服务器节点的主机名 2.3 实验搭建 1、…

SOT23封装1A电流LDO具有使能功能的 1A、低 IQ、高精度、低压降稳压器系列TLV757P

前言 SOT23-5封装的外形和丝印 该LDO适合PCB空间较小的场合使用&#xff0c;多数SOT23封装的 LDO输出电流不超过0.5A。建议使用时输入串联二极管1N4001,PCB布局需要考虑散热&#xff0c;参考文末PCB布局。 1 特性 • 采用 SOT-23 (DYD) 封装&#xff0c;具有 60.3C/W RθJA •…

深度学习之线性代数预备知识点

概念定义公式/案例标量(Scalar)一个单独的数值&#xff0c;表示单一的量。例如&#xff1a;5, 3.14, -2向量 (Vector)一维数组&#xff0c;表示具有方向和大小的量。 &#xff0c;表示三维空间中的向量 模(Magnitude)向量的长度&#xff0c;也称为范数&#xff08;通常为L2范数…

【磨皮美白】基于Matlab的人像磨皮美白处理算法,Matlab处理

博主简介&#xff1a;matlab图像代码项目合作&#xff08;扣扣&#xff1a;3249726188&#xff09; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 本次案例是基于Matlab的图像磨皮美白处理&#xff0c;用matlab实现。 一、案例背景和算法介绍 …

AI基础 L22 Uncertainty over Time I 时间的不确定性

Time and Uncertainty 1 Time and Uncertainty States and Observations • discrete-time models: we view the world as a series of snapshots or time slices • the time interval ∆ between slices, we assume to be the same for every interval • Xt: denotes the se…

LeetCode[中等] 合并区间

以数组 intervals 表示若干个区间的集合&#xff0c;其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间&#xff0c;并返回 一个不重叠的区间数组&#xff0c;该数组需恰好覆盖输入中的所有区间 。 思路 区间排序&#xff1a; 开始位置 ——> 升序排…

【JVM】类加载

概述 负责从硬盘上加载字节码文件到JVM中。 类加载器子系统负责从文件系统或者网络中加载 class 文件。ClassLoader 只负责 class 文件的加载&#xff0c;至于它是否可以运行&#xff0c;则由 Execution Engine 决定。加载的类信息存放于一块称为方法区的内存空间。 class file…

Android中的冷启动,热启动和温启动

在App启动方式中分为三种&#xff1a;冷启动&#xff08;cold start&#xff09;、热启动&#xff08;hot start&#xff09;、温启动&#xff08;warm start&#xff09; 冷启动&#xff1a; 系统不存在App进程&#xff08;App首次启动或者App被完全杀死&#xff09;时启动A…

嵌入式软件工程师:科技浪潮中的关键角色

嵌入式软件工程师&#xff1a;科技浪潮中的关键角色 一、嵌入式软件工程师的职业魅力 &#xff08;一&#xff09;市场需求旺盛 嵌入式软件工程师在当今科技领域中扮演着至关重要的角色。随着智能化时代的到来&#xff0c;嵌入式系统在各个行业的应用越来越广泛&#xff0c;市…

【工具推荐】Agently:一款灵活易用的 AI 应用开发框架

本文内容均来自个人笔记并重新梳理&#xff0c;如有错误欢迎指正&#xff01; 如果对您有帮助&#xff0c;烦请点赞、关注、转发、订阅专栏&#xff01; 专栏订阅入口 | 精选文章 | Kubernetes | Docker | Linux | 羊毛资源 | 工具推荐 | 往期精彩文章 【Docker】&#xff08;全…

centos更改静态ip

点击网络和internet设置 点击更改适配器 、点击属性

感知器神经网络

1、原理 感知器是一种前馈人工神经网络&#xff0c;是人工神经网络中的一种典型结构。感知器具有分层结构&#xff0c;信息从输入层进入网络&#xff0c;逐层向前传递至输出层。根据感知器神经元变换函数、隐层数以及权值调整规则的不同&#xff0c;可以形成具有各种功能特点的…

基于SpringBoot的招生宣传管理系统【附源码】

基于SpringBoot的招生宣传管理系统&#xff08;源码L文说明文档&#xff09; 目录 4 系统设计 4.1 系统概述 4.2系统功能结构设计 4.3数据库设计 4.3.1数据库E-R图设计 4.3.2 数据库表结构设计 5 系统实现 5.1管理员功能介绍 5.1.1管理员登录 …

Leetcode—1184. 公交站间的距离【简单】

2024每日刷题&#xff08;161&#xff09; Leetcode—1184. 公交站间的距离 实现代码 class Solution { public:int distanceBetweenBusStops(vector<int>& distance, int start, int destination) {int clockwise 0;int counterclockwise 0;if(start > desti…

建设世界一流财务管理体系【数字化顶层设计】【持续更新】

财务管理是企业管理的中心环节&#xff0c;是企业实现基业长青的重要基础和保障。近年来&#xff0c;中央企业认真贯彻落实党中央、国务院决策部署&#xff0c;高度重视财务管理工作&#xff0c;持续优化管理手段&#xff0c;不断创新管理模式&#xff0c;积极应用先进管理工具…

Python编码系列—Python原型模式:深克隆与高效复制的艺术

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…

vue + Lodop 制作可视化设计页面 实现打印设计功能(四)

历史&#xff1a; vue2 Lodop 制作可视化设计页面 实现打印设计功能&#xff08;一&#xff09; vue Lodop 制作可视化设计页面 实现打印设计功能&#xff08;二&#xff09; vue Lodop 制作可视化设计页面 实现打印设计功能&#xff08;三&#xff09; 前言&#xff1a…

架构师知识梳理(七):软件工程-工程管理与开发模型

软件工程概述 软件开发生命周期 软件定义时期&#xff1a;包括可行性研究和详细需求分析过程&#xff0c;任务是确定软件开发工程必须完成的总目标&#xff0c;具体可分成问题定义、可行性研究、需求分析等。软件开发时期&#xff1a;就是软件的设计与实现&#xff0c;可分成…

k8s使用本地docker私服启动自制的flink集群

目标&#xff1a;使用本地flink环境自制flink镜像包上传到本地的私服&#xff0c;然后k8s使用本地的私服拉取镜像启动Flink集群 1、将本地的flink软件包打包成Docker镜像 从官网下载flink-1.13.6的安装包&#xff0c;修改其中的flink-conf.yaml&#xff0c;修改下面几项配置 …