【配置环境】Visual Studio 配置 OpenCV

news2024/11/15 23:38:33

目录

一,环境

二,下载和配置 OpenCV

三,创建一个 Visual Studio 项目

四,配置 Visual Studio 项目

五,编写并编译 OpenCV 程序


一,环境

  • Windows 11 家庭中文版
  • Microsoft Visual Studio Community 2022 (64 位) - Current版本 17.5.3
  • OpenCV – 4.8.0

二,下载和配置 OpenCV

1.在Windows下安装OpenCV,你通常有两种选择

  1. 使用预编译的二进制库(推荐): 这是最常见的方法。可以从OpenCV官方网站下载已经编译好的二进制版本,无需自己编译。这些预编译库已经包含了OpenCV的头文件和库文件,可以直接在项目中使用。
    1. 前往 OpenCV Releases 页面 下载最新的版本(选择Windows版)。
    2. 解压下载的文件到指定路径下,会得到一个文件夹,例如opencv/build,内容参考如下。然后按照前面提到的方式配置你的项目以使用这些预编译库。
  2. 从源代码编译OpenCV(高级选项): 如果你需要进行高级配置、自定义编译选项或者希望在Windows上编译OpenCV的源代码,你可以选择这种方法。但这通常较为复杂,需要更多时间和资源。
    1. 首先,从OpenCV的 GitHub仓库 下载源代码。
    2. 安装CMake,可以从 CMake官网 下载并安装最新的CMake版本,这是一个用于配置和生成编译项目的工具。
    3. 打开CMake GUI,在 “Where is the source code” 中选择OpenCV的源代码目录。在 “Where to build the binaries” 中选择一个用于生成编译结果的目标文件夹,通常建议在源代码目录之外创建一个名为 “build” 的文件夹。
    4. 点击 “Configure” 按钮。CMake将提示你选择生成器,选择合适的Visual Studio版本(例如,Visual Studio 2022)。
    5. 配置选项:在CMake配置过程中,可以根据需要设置不同的选项,如编译类型、安装路径、开启/关闭模块等。确保根据自己的需求进行配置。(网上搜索
    6. 点击 “Generate” 按钮,这将生成一个Visual Studio项目文件。
    7. 打开生成的Visual Studio项目文件(通常是.sln文件)。
    8. 在Visual Studio中,选择 “Release” 或 “Debug” 配置(根据需要选择),然后点击 “生成”(Build)按钮。这将编译OpenCV。
    9. 编译完成后,可以在生成的目标文件夹中找到编译好的OpenCV库文件(通常在 build/install 文件夹下)。

2.配置 OpenCV 环境变量

  1. 使用键盘快捷键 Win + R 打开运行对话框。在运行对话框中,输入 sysdm.cpl,然后按 Enter 键。这将直接打开系统属性窗口的 “高级” 选项卡,从那里访问环境变量配置。
  2. 添加OpenCV的 bin 文件夹路径,以便系统可以找到OpenCV的DLL文件。例如:D:\Program Files\OpenCV\build\x64\vc16\bin(请根据你的实际路径进行替换)。
  3. 添加OpenCV的 lib 文件夹路径,以便编译器和连接器可以找到OpenCV的库文件。例如:D:\Program Files\OpenCV\build\x64\vc16\lib(请根据你的实际路径进行替换)。
  4. 确保点击了 "确定" 按钮,然后关闭所有窗口。
  5. 打开命令提示符,输入 opencv_version 命令,检查OpenCV是否配置成功。如果配置成功,会输出OpenCV的版本号,表明OpenCV库可在命令行中正常运行。

三,创建一个 Visual Studio 项目

使用Visual Studio创建一个新的C++项目,或者打开一个现有的项目。

四,配置 Visual Studio 项目

  1. 打开项目属性,选择 “配置属性 > VC++ 目录”,然后将 “包含目录” 配置为包含OpenCV的include文件夹(opencv\build\include),将 “库目录” 配置为包含OpenCV的lib文件夹(opencv\build\x64\vc16\lib)。
  2. 在 “配置属性 > 链接器 > 输入” 下,将 “附加依赖项” 添加要使用的 OpenCV 库文件(例如 opencv_world480d.lib)。

五,编写并编译 OpenCV 程序

以下示例是读取一张图片并显示它

#include <iostream>
#include <opencv2/opencv.hpp>

//#pragma comment(lib,"opencv_world480d.lib")

int main() {
    cv::Mat image = cv::imread("your_image.jpg");

    if (image.empty()) {
        std::cerr << "Error: Could not read image file." << std::endl;
        return -1;
    }

    cv::imshow("My Image", image);
    cv::waitKey(0);

    return 0;
}

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

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

相关文章

【每日运维】RockyLinux8.6升级OpenSSH9.4p1

为什么需要升级openssh呢&#xff0c;因为很多项目进行漏扫结果都会涉及到这个服务器核心组件&#xff0c;一想到以前升级openssh带来的各种依赖性问题就头疼&#xff0c;不管是什么发行版&#xff0c;升级这个东西真的很烦&#xff0c;这次发现可能还会有好一点的通用一点的升…

Docker最简单的来部署前端vue打包好的h5代码

Docker最简单的来部署前端vue打包好的h5代码 前言 是不是想在服务器上部署好几个前端页面&#xff0c;并且也不想让各个页面之间进行隔离&#xff0c;还有就是想要一键部署&#xff0c;实时更新到服务区上&#xff0c;那这篇文章可能帮到您 这里也得选择一个软件叫Idea&#x…

Web3的新商业综合体——SMT震撼来袭!

SMT元宇宙应用生态平台&#xff0c;致力于打造一个Web3.0的新商业综合体。作为一个基础公链系统&#xff0c;SMT各项性能能够完全满足现在当下的各种应用&#xff0c;以及它们的部署。 用区块链技术和新的商业模式体现P2E并实现一个共建共享的理念&#xff0c;重塑大众生活的衣…

Python Qt学习(九)MainWindow

源代码&#xff1a; # -*- coding: utf-8 -*-# Form implementation generated from reading ui file qt_mainwindow.ui # # Created by: PyQt5 UI code generator 5.15.9 # # WARNING: Any manual changes made to this file will be lost when pyuic5 is # run again. Do n…

python面试题合集(一)

python技术面试题 1、Python中的幂运算 在python中幂运算是由两个 **星号运算的&#xff0c;实例如下&#xff1a; >>> a 2 ** 2 >>> a 4我们可以看到2的平方输出结果为4。 那么 ^指的是什么呢&#xff1f;我们用代码进行演示&#xff1a; >>>…

音频——I2S 右对齐模式(四)

I2S 基本概念飞利浦(I2S)标准模式左(MSB)对齐标准模式右(LSB)对齐标准模式DSP 模式TDM 模式 文章目录 I2S right时序图逻辑分析仪抓包 I2S right I2S 右对齐标准 也叫日本格式&#xff0c;sony 格式。相比于标准左对齐格式&#xff0c;标准右对齐的不足在于接收设备必须事先知…

奇舞周刊第 504 期:谷歌浏览器 Chrome 117 Beta 又上新功能,爱了爱了!

记得点击文章末尾的“ 阅读原文 ”查看哟~ 下面先一起看下本期周刊 摘要 吧~ 奇舞推荐 ■ ■ ■ 谷歌浏览器 Chrome 117 Beta 又上新功能&#xff0c;爱了爱了&#xff01; Chrome 117 Beta 版本新增了 CSS 网格子网格 (subgrid)、入场和出场动画支持&#xff0c;以及 CSS、数组…

TiDB 一栈式综合交易查询解决方案获“金鼎奖”优秀金融科技解决方案奖

日前&#xff0c;2023“金鼎奖”评选结果揭晓&#xff0c; 平凯星辰&#xff08;北京&#xff09;科技有限公司研发的 TiDB 一栈式综合交易查询解决方案获“金鼎奖”优秀金融科技解决方案奖 &#xff0c; 该方案已成功运用于 多家国有大行、城商行和头部保险企业 。 此次获奖再…

企业名片如何制作二维码?一招教你在线制作二维码名片

想要制作企业二维码名片时要怎么操作呢&#xff1f;现在的企业为了节省资源都开始使用无纸化办公了。当一个企业想要使用电子版名片的时候应该怎么制作呢&#xff1f;可以将企业联系方式、邮箱、地址等做成二维码图片&#xff0c;扫码就能在线查看企业信息。这时候&#xff0c;…

【leetcode 力扣刷题】数学题之计算次幂//次方:快速幂

利用乘法求解次幂问题—快速幂 50. Pow(x, n)372. 超级次方 50. Pow(x, n) 题目链接&#xff1a;50. Pow(x, n) 题目内容&#xff1a; 题目就是要求我们去实现计算x的n次方的功能函数&#xff0c;类似c的power()函数。但是我们不能使用power()函数直接得到答案&#xff0c;那…

AI 也有冷静期?

阅读本文大概需要 1.31分钟。 上一次听说「冷静期」这个词&#xff0c;还是大家都在讨论「离婚冷静期」对时候&#xff0c;最近时常看到「冷静期」&#xff0c;缘于大家所讨论的 AI 热度下降事情&#xff0c;俗称「AI 冷静期」。 1、 上半年&#xff0c;每隔一段时间&#xff0…

无涯教程-JavaScript - NORMSDIST函数

NORMSDIST函数替代Excel 2010中的NORM.S.DIST函数。 描述 该函数返回标准正态累积分布函数。分布的平均值为0(零),标准偏差为1。使用此功能代替标准法线区域的表格。 语法 NORMSDIST (z)争论 Argument描述Required/OptionalZThe value for which you want the distributio…

【OpenCV入门】第八部分——滤波器

文章结构 图像平滑处理均值滤波器中值滤波器高斯滤波器双边滤波器拉普拉斯高通滤波器 图像平滑处理 图像平滑处理是指在尽量保留原图像信息的情况下&#xff0c;去除掉图像内部的噪声&#xff08;分布不均匀的、高亮度的像素点&#xff09;。而用于图像平滑处理的工具就是滤波…

Qt +VTK+Cmake 编译和环境配置(第一篇 采坑)

VTK下载地址&#xff1a;https://vtk.org/download/ cmake下载地址&#xff1a;https://cmake.org/download/ 版本对应方面&#xff0c;如果你的项目对版本没有要求&#xff0c;就不用在意。我就是自己随机搭建的&#xff0c;VTK选择最新版本吧&#xff0c;如果后面其他的库不…

HttPClient简介及示例:学习如何与Web服务器进行通信

文章目录 前言一、引入依赖二、使用步骤1.创建被调用者2.创建调用者三、结果被调用者服务&#xff1a;调用者服务&#xff1a; 总结 前言 欢迎来到本篇博客&#xff0c;这是一个关于HttPClient的入门案例的指南。&#x1f389; 在今天的网络世界中&#xff0c;与服务器进行数据…

数据挖掘导论学习笔记1(第1 、2章)

参考&#xff1a;https://blog.csdn.net/u013232035/article/details/48281659?spm1001.2014.3001.5506 和《数据挖掘导论》学习笔记&#xff08;第1-2章&#xff09;_时机性样本_schdut的博客-CSDN博客 第1章 绪论 数据挖掘是一种技术&#xff0c;它将传统的数据分析方法…

【LeetCode】剑指 Offer <二刷>(4)

目录 题目&#xff1a;剑指 Offer 09. 用两个栈实现队列 - 力扣&#xff08;LeetCode&#xff09; 题目的接口&#xff1a; 解题思路&#xff1a; 代码&#xff1a; 过啦&#xff01;&#xff01;&#xff01; 题目&#xff1a;剑指 Offer 10- I. 斐波那契数列 - 力扣&am…

FFmpeg5.0源码阅读——FFmpeg大体框架(以GIF转码为示例)

摘要&#xff1a;前一段时间熟悉了下FFmpeg主流程源码实现&#xff0c;对FFmpeg的整体框架有了个大概的认识&#xff0c;因此在此做一个笔记&#xff0c;希望以比较容易理解的文字描述FFmpeg本身的结构&#xff0c;加深对FFmpeg的框架进行梳理加深理解&#xff0c;如果文章中有…

ROS机器人编程---------(二)ROS中的核心概念

ROS机器人编程 ROS中的核心概念 ROS的通信机制 在ROS中结点是最小单元&#xff0c;比如说机器人的遥控器可以作为一个控制结点&#xff0c;机器人上的摄像头也可以看作一个结点&#xff0c;ROS通过协调各个结点来实现 在启动任何ROS结点之前&#xff0c;都必须先启动ROS Mas…

【数据结构】 二叉树面试题讲解->贰

文章目录 &#x1f30f;引言&#x1f384;[二叉树遍历](https://www.nowcoder.com/practice/4b91205483694f449f94c179883c1fef?tpId60&&tqId29483&rp1&ru/activity/oj&qru/ta/tsing-kaoyan/question-ranking)&#x1f431;‍&#x1f464;题目描述&#…