Opencv库的安装与vs项目配置(vs成功配置opencv库)

目录

一、下载安装opencv

1、下载

2、减压安装

3、环境变量配置

二、vs项目配置opencv 

1、创建vs项目

2、配置opencv库

3、测试


其中:二、2、配置opencv库是最复杂的,有空需要搞清楚vs中配置不同地方的区别。

以下所有测试是opencv官方4.6.0 windows版本 + visual studio 2022官方版本 + win11系统

目前只是配置opencv三步走法:

  • include头文件包含——>  c/c++  附加包含目录
  • 静态库lib               ——>  链接器/输入/附加依赖项
  • 动态库dll               ——>  链接器/常规/附加库目录

出错可能:

  • 电脑环境变量配置有错
  • 静态库添加需要具体到 opencv_world460.lib(release)和opencv_world460d.lib(debug)
  • 动态库添加需要具体到 opencv_world460.dll(release)和opencv_world460d.dll(debug)或者尝试具体复制到项目的D:\MyProjects\HelloOpencv\x64\Release和exe同一目录。

一、下载安装opencv

1、下载

OpenCV - Open Computer Vision Library

2、减压安装

点击下载好是如图这样的exe文件,实际上是压缩文件,双击运行就可以减压。 

 

3、环境变量配置

按照这样把静态库和动态库路径配置到用户变量里,关机重启电脑就好了。

二、vs项目配置opencv 

1、创建vs项目

注意,运行一下,创建成功

接下来引入头文件,发现 #include还没编译,就在编辑程序的时候就报错了,说明静态编译没有通过。所以要接下来开始配置!!!

2、配置opencv库

接下来开始文件路径配置:

注意:release和debug好像都得配置一次,才可以都用。是需要分开配置的。亲测是这样,不知道为什么?但是发现了这个,可以一起配

1、include头文件路径配置:使得vs能在#include的时候完成对opencv库的静态编译,找到声明。

2、Lib静态库路径配置:使得vs能够完成opencv库的静态链接,能找到地址。

3、DLL动态库路径配置:使得vs能够完成openc库的动态链接,找到函数的实现。

4、注意:动态链接库最好放到exe同级目录下。 

放在同一目录,目前可以不配置电脑的用户环境变量。/否则就得必须配置上面一章中第 3、环境变量配置的操作。(这里实测情况是:配置了环境变量,没有放库到同一目录下)

5、报错问题:

解决:写到具体的lib文件,这里注意对应:

release对应是opencv_world460.lib;debug对应是opencv_world460d.lib

3、测试

release和debug都能成功了

 

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

using namespace cv;

int main()
{
    std::cout << "Hello World!\n";

    // 读入一张图片
    Mat img = imread("D:/MyProjects/HelloOpencv/1.png");
    // 判断加载是否正确
    if (img.empty()) {
        std::cerr << "Error: Could not load image!" << std::endl;
        return -1;
    }
    //展示图片
    imshow("img", img);
    waitKey(0);

}

补充:静态文件lib和动态文件dll区别:

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

差分的数学定义——由泰勒展开式推导

差分是数值分析中的概念&#xff0c;用于近似连续函数的导数。差分可以通过多种方式定义&#xff0c;一阶差分常见的有前向差分、后向差分和中心差分&#xff0c;二阶差分常用的是中心差分法。 一阶差分 1. 前向差分 (Forward Difference) 对于一个函数 f ( x ) f(x) f(x)&…

机器学习数据标准化与归一化:提升模型精度的关键

&#x1f4d8;数据标准化与归一化&#xff1a;提升模型精度的关键 机器学习中的数据处理环节至关重要&#xff0c;其中&#xff0c;数据标准化与归一化是提高模型性能的关键步骤之一。数据的特征尺度往往不一致&#xff0c;直接影响模型的训练效果&#xff0c;因此对数据进行处…

大数据开发基础实训室设备

大数据实验实训一体机 大数据实验教学一体机是一种专为大数据教育设计的软硬件融合产品&#xff0c;其基于华为机架服务器进行了调优设计&#xff0c;从而提供了卓越的性能和稳定性。这一产品将企业级虚拟化管理系统与实验实训教学信息化平台内置于一体&#xff0c;通过软硬件…

【超详细】TCP协议

TCP(Transmission Control Protocol 传输控制协议) 传输层协议有连接可靠传输面向字节流 为什么TCP是传输控制协议呢&#xff1f; 我们以前所看到的write接口&#xff0c;都是把用户级缓冲区的数据拷贝到发送缓冲区中&#xff0c;然后数据就由TCP自主决定了&#xff0c;所以…

番茄工作法计时器:高效时间管理利器

《番茄工作法计时器&#xff1a;高效时间管理利器》 在快节奏的现代生活中&#xff0c;高效管理时间成为每个人的迫切需求。今天&#xff0c;我们为你推荐一款强大的番茄工作法计时器。 这款计时器设计简洁&#xff0c;操作便捷&#xff0c;仅有两个按钮 —— 工作 25 分钟和休…

【未公开0day】RaidenMAILD CVE-2024-32399 路径穿越漏洞【附poc下载】

免责声明&#xff1a;本文仅用于技术学习和讨论。请勿使用本文所提供的内容及相关技术从事非法活动&#xff0c;若利用本文提供的内容或工具造成任何直接或间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果均与文章作者及本账号无关。 fofa语…

【C++】创建TCP服务端

实现了一个基本的 TCP 服务器&#xff0c;可以接受多个客户端连接&#xff0c;然后持续接收客户端发送的信息&#xff0c; 最后将接收到的信息再发送回客户端 。 源码 头文件&#xff08;TCPServerTest.h&#xff09; #include <iostream> #include <winsock2.h&g…

Idea序列图插件-SequenceDiagram Core

&#x1f496;简介 SequenceDiagram Core 是一个 IntelliJ IDEA 插件&#xff0c;它允许开发者直接在 IDE中创建和编辑序列图&#xff08;Sequence Diagrams&#xff09;。序列图是 UML&#xff08;统一建模语言&#xff09;中的一种图表类型&#xff0c;用于描述对象之间如何…

【Java 22 | 10】 深入解析Java 22 :Vector API 增强特性

Java 22 对 Vector API 进行了重要增强&#xff0c;旨在提供更高效的矢量操作能力&#xff0c;以支持性能关键的应用程序。Vector API 允许开发者利用硬件的 SIMD&#xff08;单指令多数据&#xff09;特性&#xff0c;从而在处理数组和集合等数据时显著提高性能。 1. 基础介绍…

谷歌-BERT-第一步:模型下载

1 需求 需求1&#xff1a;基于transformers库实现自动从Hugging Face下载模型 需求2&#xff1a;基于huggingface-hub库实现自动从Hugging Face下载模型 需求3&#xff1a;手动从Hugging Face下载模型 2 接口 3.1 需求1 示例一&#xff1a;下载到默认目录 from transform…

微带传输线 - 本征模 - Alpha 衰减常数与S21插损_CST软件案例

关于Beta之前的文章解释了很多&#xff0c;这期说说Alpha。α 是衰减常数&#xff08;attenuation constant&#xff09;&#xff0c;表示波损耗&#xff0c;和S21插损相关&#xff0c;但这几个量很多人还是搞不清楚。 首先&#xff0c;S21和插损Insertion Loss严格上讲是不一…

Spring Boot与JavaWeb协同:在线考试系统的实现“

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及&#xff0c;互联网成为人们查找信息的重要场所&#xff0c;二十一世纪是信息的时代&#xff0c;所以信息的管理显得特别重要。因此&#xff0c;使用计算机来管理基于JavaWeb技术的在线考试系统设计与实现…

请求参数中字符串的+变成了空格

前端请求 后端接收到的结果 在URL中&#xff0c;某些字符&#xff08;包括空格、、&、? 等&#xff09;需要被编码。具体而言&#xff0c;在URL中&#xff0c;空格通常被编码为 或 %20。因此&#xff0c;如果你在请求参数中使用 &#xff0c;它会被解释为一个空格。 如果…

【C++贪心】2086. 喂食仓鼠的最小食物桶数|1622

本文涉及知识点 C贪心 LeetCode2086. 喂食仓鼠的最小食物桶数 给你一个下标从 0 开始的字符串 hamsters &#xff0c;其中 hamsters[i] 要么是&#xff1a; ‘H’ 表示有一个仓鼠在下标 i &#xff0c;或者’.’ 表示下标 i 是空的。 你将要在空的位置上添加一定数量的食物桶…

QUIC(Quick UDP Internet Connections)与 RTMP(Real Time Messaging Protocol)

QUIC&#xff08;Quick UDP Internet Connections&#xff09;和 RTMP&#xff08;Real Time Messaging Protocol&#xff09;是两种不同的网络传输协议&#xff0c;它们在一些方面有不同的特点和应用场景。 QUIC 协议 特点 基于 UDP&#xff1a;QUIC 建立在 UDP 之上&#xff…

unity静态批处理

unity静态批处理 静态批处理要求和兼容性渲染管线兼容性 使用静态批处理在构建时进行静态批处理在构建时执行静态批处理的步骤&#xff1a; 在运行时进行静态批处理性能影响 静态批处理 静态批处理是一种绘制调用批处理方法&#xff0c;它将不移动的网格组合在一起&#xff0c…

合并与变形

目录 合并 准备数据 append关键字 concat关键字 merge关键字 join关键字 变形 df.T行列转置 透视表 合并 很多情况下需要将多个df合并为一个新的df df1.append(df2) 纵向合并数据集 pd.concat([df1, df2, ...]) 横向或纵向合并数据集&#xff0c;df1和df2可以没有任何…

企业微信开放平台注册流程

目录 网址 注册步骤 准备工作 填写信息 微信认证 填写发票 支付费用 完成注册 网址 微信开放平台&#xff1a; https://open.weixin.qq.com/ 注册步骤 准备工作 企业版&#xff1a; 没有注册过微信其他平台&#xff08;如&#xff1a;微信小程序&#xff0c;微信公众…

澳鹏干货 | 大语言模型的上下文窗口 (Context Windows)

大语言模型&#xff08;LLMs&#xff09;极大地提升了人工智能在理解和生成文本方面的能力。其中一个影响其效用的重要方面是“上下文窗口”&#xff08;Context Windows&#xff09;—— 这个概念直接影响着模型接收和生成语言的有效性。 本期澳鹏干货将深入探讨上下文窗口对…

【MySQL】增删改查-进阶(一)

目录 &#x1f334;数据库约束 &#x1f6a9;约束类型 &#x1f6a9;NOT NULL &#x1f6a9;UNIQUE &#x1f6a9;DEFAULT &#x1f6a9;PRIMARY KEY &#x1f6a9;FOREIGN KEY &#x1f6a9;CHECK &#x1f384;表的设计 &#x1f6a9;一对一 &#x1f6a9;一对多 …