在visual studio 2022 C++中配置最新版OpenCV和可能错误解决方案

前面我们写了一篇博文有关在C#中配置OpenCV,但C#版本的OpenCV的学习资源相对较少,C++版的和Python版的比较多。这里先说说C++版的如何配置吧!总共完成四步即可使用起来。

文章目录

  • 一、下载并安装OpenCV
    • 1、下载OpenCV
    • 2、安装OpenCV
  • 二、配置环境
    • 1、外部包含目录
    • 2、库目录
    • 3、链接器输入:附件依赖项
  • 三、测试运行OpenCV
    • 1、找不到opencv_world470.dll
    • 2、vcruntime140.dll处引发异常
    • 3、代码和运行
    • 4、保存一个配置PropertySheet

文章原出处: https://blog.csdn.net/haigear/article/details/129617330

一、下载并安装OpenCV

1、下载OpenCV

我们来到官网,最新版截止到22年12月的4.7,无所谓你安装哪个版本都无所谓,现在市面上4.5的教程资源多一些,你可以考虑4.5的吧。不过我这里做演示就用4.7的。
在这里插入图片描述
进来之后记得滑到下面,点下面的release才能有下载的按钮,选择对应的版本即可下载,不过我这里还是提醒一句,不要用浏览器下载,用迅雷速度很快(有的人有浏览器下载一看只有几十K,就去找国内的镜像网站下载去了,没有这个必要),我的下载速度达到3M左右,应该是算不错的了。
在这里插入图片描述

2、安装OpenCV

下载完毕后,我们就着手安装了,其实严格意义上说不叫做安装吧,叫做解压,选择一个你自己喜欢的目录解压即可。
在这里插入图片描述
我这里默认你已经在VS中安装好了c++桌面开发环境了,如果没有这个简单在Visual Studio Installer中选择并安装即可。这里不再赘述,贴个图,怕你安装错了!

在这里插入图片描述
如果不安装那么你的项目即使能够建立也不能编译,这里不展开说了哦!去安装去吧!
在这里插入图片描述

二、配置环境

1、外部包含目录

主要配置两个东东,外部包涵目录和库目录及链接器
在这里插入图片描述
千万不能把目录层级搞错,否则你仍然会在编译阶段遇到找不到包涵文件

在这里插入图片描述
这样的错就是因为上述目录多进入了一级,到了OpenCV2,千万不必这样
在这里插入图片描述

2、库目录

在这里插入图片描述

3、链接器输入:附件依赖项

附加依赖配置的时候,我们还是在OpenCV\opencv\build\x64\vc16\lib下拷贝,目录和上面的库目录一样,但一定记住,文件扩展名不要丢掉了,否则配置无效,这里如果你是要发布的就拷贝没有d的lib,我这里是需要调试debug的,所以拷贝带有d的lib文件。
在这里插入图片描述

到了这里,我们的配置算是结束了,可以正常编译opencv的项目了。

三、测试运行OpenCV

1、找不到opencv_world470.dll

第一次运行,你可能会遇到这个错误,那是由于没有配置环境变量,配置好即可,将外部
在这里插入图片描述
在用户环境变量或者系统环境变量的path中添加一个opencv的bin目录
在这里插入图片描述
新建添加,粘贴目录在这里即可
在这里插入图片描述
记得重新启动VS再次进入项目才能够生效。

2、vcruntime140.dll处引发异常

遇到这个错误,那是因为链接输入配置处的lib文件搞错了,你可能拷贝的是没有带d的lib文件,修改过来即可。
在这里插入图片描述

3、代码和运行

测试代码如下:

#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;

int main()
{
   
    std::cout << "Hello World!\n";
    Mat dstimg;
    Mat srcimg = imread("d:\test.jpg");
    cvtColor(srcimg, dstimg, COLOR_RGB2GRAY);
    imshow("showimage",dstimg);

    waitKey();
   

    return 0;
}

上面的代码只是将图片读入后变成灰度图,测试CV的调用是否正常。
运行效果如下:
原图:
请添加图片描述
运行后的灰度图:
在这里插入图片描述
说明已经配置完成了。

4、保存一个配置PropertySheet

这个比较简单,就是在属性管理其中,点击第二个图标,新建一个PropertySheet,双击这个PropertySheet,它和我们打开项目的属性一模一样,那么你将上面配置过的属性,比如链接器的输入配置,外部包含目录,目录库等,都在这里配置一次,或者拷贝过来也是很容易的,这个PropertySheet就可以在你下次新建项目的时候直接导入即可省去上面那一整套繁琐的配置工作了。

在这里插入图片描述
在这里插入图片描述
这个很容易,所以不再啰嗦了,记得保存的这个PropertySheet取一个你记得的名字,放在一个你很容易找到的目录下,当做一个宝贵的“再利用资源”存好。

码字不易,转载请注明出处:https://blog.csdn.net/haigear/article/details/129617330

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

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

相关文章

【python】喜欢XJJ?这不得来一波大采集?

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 俗话说的好&#xff1a;技能学了~就要用在自己喜欢得东西上&#xff01;&#xff01; 这我不得听个话~我喜欢小姐姐&#xff0c;跳舞的小姐姐 这不得用python把小姐姐舞采集下来~嘿嘿嘿 完整源码、素材皆可点击文章下方名片…

条款20:当std::shared_ptr可能悬空时使用std::weak_ptr

自相矛盾的是&#xff0c;如果有一个像std::shared_ptr&#xff08;见条款19&#xff09;的但是不参与资源所有权共享的指针是很方便的。换句话说&#xff0c;是一个类似std::shared_ptr但不影响对象引用计数的指针。这种类型的智能指针必须要解决一个std::shared_ptr不存在的问…

Mysql 竟然还有这么多不为人知的查询优化技巧,还不看看?

前言 Mysql 我随手造200W条数据&#xff0c;给你们讲讲分页优化 MySql 索引失效、回表解析 今天再聊聊一些我想分享的查询优化相关点。 正文 准备模拟数据。 首先是一张 test_orde 表&#xff1a; CREATE TABLE test_order (id INT(11) NOT NULL AUTO_INCREMENT,p_sn VARCHA…

Spring事务和事务传播机制

目录 Spring中事务的实现 1、通过代码的方式手动实现事务 2、通过注解的方式实现声明式事务 2.1、Transactional作用范围 2.2、Transactional参数说明 2.3、注意事项 2.4、Transactional工作原理 事务隔离级别 1、事务特性 2、Spring中设置事务隔离级别 2.1、MySQL事…

Linux:函数指针做函数参数

#include <stdio.h> #include <stdlib.h> //创建带有函数指针做参数的函数框架api //调用者要先实现回调函数 //调用者再去调用函数框架 //所谓的回调是指 调用者去调用一个带有函数指针做参数的函数框架&#xff0c;函数框架反过来要调用调用者提供的回调函数 …

蓝桥杯冲击-02约数篇(必考)

文章目录 前言 一、约数是什么 二、三大模板 1、试除法求约数个数 2、求约数个数 3、求约数之和 三、真题演练 前言 约数和质数一样在蓝桥杯考试中是在数论中考察频率较高的一种&#xff0c;在省赛考察的时候往往就是模板题&#xff0c;难度大一点会结合其他知识点考察&#x…

全面剖析OpenAI发布的GPT-4比其他GPT模型强在哪里

最强的文本生成模型GPT-4一、什么是GPT-4二、GPT-4的能力三、和其他GPT模型比较3.1、增加了图像模态的输入3.2、可操纵性更强3.3、复杂任务处理能力大幅提升3.4、幻觉、安全等局限性的改善3.6、风险和缓解措施改善更多安全特性3.7、可预测的扩展四、与之前 GPT 系列模型比较五、…

QT入门Item Views之QListView

目录 一、QListView界面相关 1、布局介绍 二、代码展示 1、创建模型&#xff0c;导入模型 2、 设置隔行背景色 3、删除选中行 三、源码下载 此文为作者原创&#xff0c;创作不易&#xff0c;转载请标明出处&#xff01; 一、QListView界面相关 1、布局介绍 先看下界面…

高完整性系统工程(三): Logic Intro Formal Specification

目录 1. Propositions 命题 2.1 Propositional Connectives 命题连接词 2.2 Variables 变量 2.3 Sets 2.3.1 Set Operations 2.4 Predicates 2.5 Quantification 量化 2.6 Relations 2.6.1 What Is A Relation? 2.6.2 Relations as Sets 2.6.3 Binary Relations as…

ZYNQ硬件调试-------day2

ZYNQ硬件调试-------day2 1.ILA&#xff08;Integrated Logic Analyzer &#xff09; 监控逻辑内部信号和端口信号;可以理解为输出。可单独使用 2.VIO&#xff08;Virtual Input/Output &#xff09; 实时监控和驱动逻辑内部信号和端口信号&#xff0c;可以理解为触发输入。不可…

第十四届蓝桥杯三月真题刷题训练——第 14 天

目录 第 1 题&#xff1a;组队 题目描述 运行限制 代码&#xff1a; 第 2 题&#xff1a;不同子串 题目描述 运行限制 代码&#xff1a; 思路&#xff1a; 第 3 题&#xff1a;等差数列 题目描述 输入描述 输出描述 输入输出样例 运行限制 代码&#xff1a; 思…

Dubbo原理简介

Dubbo缺省协议采用单一长连接和NIO异步通讯&#xff0c;适合于小数据量大并发的服务调用&#xff0c;以及服务消费者机器数远大于服务提供者机器数的情况。 作为RPC&#xff1a;支持各种传输协议&#xff0c;如dubbo,hession,json,fastjson&#xff0c;底层采用mina,netty长连接…

nginx详解(概念、Linux安装、配置、应用)

1.nginx是什么 百度百科 看百度百科的解释&#xff0c;第一句话就是错的。“Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器”&#xff0c;从语法来看&#xff0c;去掉形容词就是&#xff1a;Nginx是服务器&#xff0c;nginx怎么会是服务器呢&#xff0c;nginx只是一…

Matlab进阶绘图第8期—聚类/分类散点图

聚类/分类散点图是一种特殊的特征渲染散点图。 聚类/分类散点图通过一定的聚类、分类方法&#xff0c;将特征相近的离散点划分到同一个类别中&#xff0c;进而将每个离散点赋予类别标签&#xff0c;并利用不同的颜色对不同的类别进行区分。 本文使用Matlab自带的gscatter函数…

C语言变量和数据类型的使用

文章目录前言一、将变量输出打印到控制台1.整形变量的输出2.浮点型变量的输出1.flaot的输出2.doble的输出3.float和double输出的区别4.%f,%10.2f......二、数据类型的大小总结前言 上一篇文章我们学习了C语言变量和数据类型的基本概念那么今天我们就具体的来看看如何在代码中使…

css实现文字大小自适应

在页面编写中经常会碰到页面自适应的问题&#xff0c;也就是页面内部的元素会随着窗口的放大缩小而放大缩小&#xff0c;box可以通过calc 百分比的形式做到页面自适应&#xff0c;但是box内的字体却无法做到这点&#xff0c;往往box自适应大小了&#xff0c;内部的字体还是原来…

selenium(5)-------自动化测试脚本(python)

1)alert框的处理 前提:我们是不可以通过控制台直接定位元素的方式去选中这个alert框的&#xff0c;例如说xpath直接进行定位元素 1)先获得弹框的操作句柄:alertdriver.switch_to.alert 2)再次调用accept方法进行关闭弹窗:alert.accept() from selenium import webdriver import…

强化学习分类与汇总介绍

1.强化学习&#xff08;Reinforcement Learning, RL&#xff09; 强化学习把学习看作试探评价过程&#xff0c;Agent选择一个动作用于环境&#xff0c;环境接受该动作后状态发生变化&#xff0c;同时产生一个强化信号(奖或惩)反馈给Agent&#xff0c;Agent根据强化信号和环境当…

【python刷题】leecode官方提示“->“,“:“这些符号是什么意思?什么是Type Hints?

作者&#xff1a;20岁爱吃必胜客&#xff08;坤制作人&#xff09;&#xff0c;近十年开发经验, 跨域学习者&#xff0c;目前于海外某世界知名高校就读计算机相关专业。荣誉&#xff1a;阿里云博客专家认证、腾讯开发者社区优质创作者&#xff0c;在CTF省赛校赛多次取得好成绩。…

JavaSE基础总结

JDK与JRE JDK&#xff0c;全称Java Development Kit&#xff0c;Java开发工具包 JRE&#xff0c;全称Java Runntime Environment&#xff0c;Java运行环境 JDK包含后者JRE。 JDK也可以说是Java SDK&#xff08;Software Development kit&#xff0c;软件开发工具包&#xff09;…