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

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.xdnf.cn/news/142185.html

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

相关文章

[产品管理-23]:NPDP新产品开发 - 21 - 产品创新中的市场调研 - 市场调研对创新产品开发的意义

目录 前言&#xff1a; 一、市场调研概述 1.1 客户与市场的区别 1、定义与范围 2、关注焦点 3、作用与影响 4、总结 1.2 销售与市场的区别 1、对象与范围 2、工作方式 3、工作内容 4、目标 5、考核标准 6、在企业运营中的角色 1.3 什么是市场调研 1、市场调研的…

[Python]用Nuitka将 Python 脚本打造为独立高效的可执行文件

nuitka --onefile --ltoyes --standalone --show-modules --show-memory --nofollow-import-tomatplotlib --nofollow-import-toscipy --nofollow-import-topygame --nofollow-import-topyarrow --nofollow-import-tosqlalchemy --nofollow-import-topandas PDF信息提取-含界面…

GUI编程13:JDialog弹窗

视频链接&#xff1a;15、JDialog弹窗_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1DJ411B75F?p15&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5 package com.yundait.lesson04;import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; im…

双亲委派机制知识点

类加载器 双亲委派模型 为什么采用双亲委派模型 打破双亲委派机制的场景 Tomcat 打破双亲委派机制:目的是可以加载不同版本的jar包 实现类隔离&#xff1a;在Tomcat中&#xff0c;每个Web应用使用独立的类加载器加载类文件&#xff0c;这样做的好处在于&#xff0c;当在同一T…

【自动化测试】移动app的分层测试以及自动遍历的基本概念

引言 移动应用的分层测试是一种系统化的测试方法&#xff0c;它将测试过程分解为不同的层次&#xff0c;以确保应用在每个层面上都符合设计要求和用户期望 文章目录 引言一、移动app的分层测试1.1 单元测试&#xff08;Unit Testing&#xff09;1.2 集成测试&#xff08;Integr…

k8s集群备份与迁移

什么是 Velero? Velero 是一个用Go语言开发的开源工具&#xff0c;用于 Kubernetes 集群的备份、恢复、灾难恢复和迁移。 Velero备份工作流程 当用户发起velero backup create时&#xff0c;会执行如下四个动作&#xff1a; velero客户端调用Kubernetes API创建自定义资源并…

用于稀疏自适应深度细化的掩码空间传播网络 CVPR2024

目录 Masked Spatial Propagation Network for Sparsity-Adaptive Depth Refinement &#xff08;CVPR 2024&#xff09;用于稀疏自适应深度细化的掩码空间传播网络1 介绍2 算法流程2.1 问题建模2.2 Guidance Network2.3 MSPN 模块 3 实验结果3.1 稀疏度自适应深度细化对比试验…

背包问题(如何定义dp状态)

前言&#xff1a;我们要如何定义dp的定义呢&#xff0c;我们不能像正常那样&#xff0c;定义为花费了 i 钱得到的最大收益&#xff0c;我们这一题需要的是收益为 i 的时候的最小花费&#xff0c;那么我们就需要定义为达到收益为 v 的时候的最小花费 这一题有一个难点就是&#…

C++初阶:STL详解(三)——vector的介绍和使用

✨✨小新课堂开课了&#xff0c;欢迎欢迎~✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;C&#xff1a;由浅入深篇 小新的主页&#xff1a;编程版小新-CSDN博客 前言&#xff1a; 前面我们刚刚了解了strin…

VTD激光雷达(2)——02_OptiX_Lidar

BRDF公式计算强度&#xff0c;关键是材料 表面凹凸不平可以在三维模型中建立 &#xff1b;一般是建模是平的&#xff0c;在软件中设置 第二章图片有水 问题PBR和非PBR的区别

【Linux】-基本指令(上)

&#x1f511;&#x1f511;博客主页&#xff1a;阿客不是客 &#x1f353;&#x1f353;系列专栏&#xff1a;深入代码世界&#xff0c;了解掌握 Linux 欢迎来到泊舟小课堂 &#x1f618;博客制作不易欢迎各位&#x1f44d;点赞⭐收藏➕关注 与Windows环境不同&#xff0c;我们…

【算法】动态规划—最长公共子序列

最长公共子序列问题就是求出两个字符串的LCS长度&#xff0c;是一道非常经典的面试题目&#xff0c;因为它的解法是典型的二维动态规划。 比如输入 str1 "babcde", str2 "acbe"&#xff0c;算法应该输出3&#xff0c;因为 str1 和 str2 的最长公共子序列…

视频格式转为mp4(使用ffmpeg)

1、首先安装ffmpeg&#xff0c;下载链接如下 https://www.gyan.dev/ffmpeg/builds/packages/ffmpeg-6.1.1-full_build.7z 安装后确保ffmpeg程序加到PATH路径里&#xff0c;cmd执行ffmpeg -version出现下图内容表示安装成功。 2、粘贴下面的脚本到文本文件中&#xff0c;文件后缀…

基于对数变换的图像美白增强,Matlab实现

博主简介&#xff1a;matlab图像处理&#xff08;QQ:3249726188&#xff09; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 本次案例是基于对数变换的图像美白增强&#xff0c;用matlab实现。 一、案例背景和算法介绍 这次案例是美白算法&…

re题(20)BUUCTF [GWCTF 2019]pyre

BUUCTF在线评测 (buuoj.cn) Python解包及反编译: PyInstaller Extractoruncompyle6 - 知乎 (zhihu.com) python撤消&#xff1a; Pycharm撤销操作和代码跳转后退回操作以及消除波浪线操作快捷键_pycharm怎么反撤销-CSDN博客 把.pyc文件变成py文件 把.py文件用记事本打开 cod…

每日OJ_牛客_BC64 牛牛的快递

目录 牛客_BC64 牛牛的快递&#xff08;简单模拟&#xff09; 解析代码1 解析代码2 牛客_BC64 牛牛的快递&#xff08;简单模拟&#xff09; 牛牛的快递_牛客题霸_牛客网 描述 牛牛正在寄快递&#xff0c;他了解到快递在 1kg 以内的按起步价 20 元计算&#xff0c;超出部…

Qt ORM模块使用说明

附源码&#xff1a;QxOrm是一个C库资源-CSDN文库 使用说明 把QyOrm文件夹拷贝到自己的工程项目下, 在自己项目里的Pro文件里添加include($$PWD/QyOrm/QyOrm.pri)就能使用了 示例test_qyorm.h写了表的定义,Test_QyOrm_Main.cpp中写了所有支持的功能的例子: 通过自动表单添加…

【代码随想录Day14】二叉树Part02

226.翻转二叉树 题目链接/文章讲解/视频讲解&#xff1a;代码随想录 遍历二叉树&#xff0c;交换每个节点的左右子树。 class Solution {public TreeNode invertTree(TreeNode root) {preorder(root);return root;}public static void preorder(TreeNode root) {if (root nu…

基于微信小程序的学生公寓电费信息管理系统+ssm(lw+演示+源码+运行)

基于微信小程序的学生公寓电费信息管理系统 摘 要 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;微信小程序被…