VS配置OpenCV教程(超详细)

article/2025/9/28 3:48:42

                                                          

目录

安装环境说明 

下载OpenCV

配置OpenCV开发环境 

属性表 

测试

可能存在的问题


安装环境说明 


操作系统:Windows10

OpenCV版本:OpenCV2和OpenCV3

VS版本:VS2015或者VS2017

 

下载OpenCV


OpenCV下载地址:http://opencv.org/或者直接搜OpenCV下载,找到对应的版本下载,应该是个压缩包,解压,可以看到两个文件夹:

 

配置OpenCV开发环境


1、添加环境变量:

电脑左上角找到“我的电脑”,点击鼠标右键,依次选择“属性”、“高级系统设置”、“环境变量”、“Path”。

 

双击“Path”进入到“编辑环境变量”页面,通过新建或者浏览的方式将opencv的“bin文件夹路径”添加到环境变量中,看看自己的电脑是64位还是32位,如果不知道vc14还是vc15可以看下面的VS版本和OpenCV中vc的对应关系表

注意:添加完环境变量之后最好重启一下电脑,使环境变量生效,不重启的话有可能会出现环境变量未生效这种情况。如果环境变量未生效,那么就找不到OpenCV的dll文件,会报计算机丢失xxx.dll。

VS版本和OpenCV中vc的对应关系
VS2003VC7
VS2005VC8
VS2008VC9
VS2010VC10
VS2012VC11
VS2013VC12
VS2015VC14
VS2017VC15

 

 

2、添加OpenCV包含目录和库目录:

打开Visual Studio,新建一个C++项目,在Visual Studio左上角菜单栏,依次选择“视图”、“其他窗口”、“属性管理器”。找到自己对应的Debug和Release模式,比如说我目前想使用x64的Debug,我就选择第二项下的“Microsoft.Cpp.x64.user”。

右键选择“属性”,进入“Microsoft.Cpp.x64.user的属性页”,依次选择“通用属性”、“VC++目录”,开始添加“包含目录”、“库目录”。 

选择“包含目录”,进入“包含目录”页面,添加OpenCV包含目录路径:

D:\OpenCV342\opencv\build\include
D:\OpenCV342\opencv\build\include\opencv
D:\OpenCV342\opencv\build\include\opencv2

 

选择“库目录”,进入“库目录”页面,添加库目录(lib文件夹)路径:

D:\OpenCV342\opencv\build\x64\vc14\lib

3、添加附加依赖项

添加附加依赖项就是添加所有的lib文件路径,这些lib文件都是在前面那个库目录里面保存的。由于OpenCV2和OpenCV3之间的不同,相应的附加依赖项也就不同。

依次选择“链接器”、“输入”、“附加依赖项”,进入“附加依赖项”页面,开始添加lib文件路径

注意有两种lib文件,一种带d的是Debug模式,不带d的是Release模式,OpenCV版本不同,前面的序号也不同,需要做相应的修改,两种模式的lib最好不要放一起,否则有可能会导致其中一个模式出问题,Debug模式下使用namewindow函数创建窗口,运行代码会出现两幅图片。

OpenCV3:

opencv_world342.lib
opencv_world342d.lib

OpenCV2413的Debug版:

opencv_contrib2413d.lib
opencv_core2413d.lib
opencv_features2d2413d.lib
opencv_flann2413d.lib
opencv_gpu2413d.lib
opencv_highgui2413d.lib
opencv_imgproc2413d.lib
opencv_legacy2413d.lib
opencv_ml2413d.lib
opencv_nonfree2413d.lib
opencv_objdetect2413d.lib
opencv_ocl2413d.lib
opencv_photo2413d.lib
opencv_stitching2413d.lib
opencv_superres2413d.lib
opencv_ts2413d.lib
opencv_video2413d.lib
opencv_videostab2413d.lib

 OpenCV2413的Release版:

opencv_contrib2413.lib
opencv_core2413.lib
opencv_features2d2413.lib
opencv_flann2413.lib
opencv_gpu2413.lib
opencv_highgui2413.lib
opencv_imgproc2413.lib
opencv_legacy2413.lib
opencv_ml2413.lib
opencv_nonfree2413.lib
opencv_objdetect2413.lib
opencv_ocl2413.lib
opencv_photo2413.lib
opencv_stitching2413.lib
opencv_superres2413.lib
opencv_ts2413.lib
opencv_video2413.lib
opencv_videostab2413.lib

到此,OpenCV就算是配置完了。

 

属性表 


为了方便使用,我们还可以通过添加属性表的方式,配置OpenCV的属性,属性表就是props文件。每次新建项目之后,只需要将属性表放到项目路径下,并添加到项目中就可以使用了,而不需要重复去配置OpenCV的属性。避免了重复去配置OpenCV的属性和切换编译模式得到麻烦,自行选择。

找到自己对应的Debug和Release模式,比如说我目前想使用x64的Debug,我就选择第二项,单击右键选择“添加新项目属性表”。

进入“添加新项”页面 ,修改属性表名称,我这里使用的是“vs2015_opencv342_x64_debug”,表明了当前使用的vs版本OpenCV版本系统位数、以及编译模式,修改完之后,点击“添加”按钮,vs2015_opencv342_x64_debug属性表就添加到属性管理器中了,。

属性表文件是保存在项目文件夹中的,下次要用的时候,直接复制、粘贴到新建的项目文件夹中去,并添加到项目属性管理器中就可以了,很方便。 

此时,双击“vs2015_opencv342_x64_debug” ,进入到“vs2015_opencv342_x64_debug属性页”,然后就跟前面配置过OpenCV属性的操作一模一样了,自己去看前面的教程,就不重复了。

配置完OpenCV属性之后,就可以开始使用OpenCV了。最好是把属性表保存在一个固定的路径中,方便复制、粘贴,使用在下一个项目中。添加属性表也很简单,先把属性表复制、粘贴到当前项目的项目文件夹中,然后打开“属性管理器”,找到对应的“模式”和“位数”,这里是“Debug|x64”,然后点击鼠标右键选择“添加现有属性表”,把复制、粘贴好的属性表文件添加进来就可以了。

 

测试


下面的代码是OpenCV最基础的,只用来显示图片,如果能显示,则安装成功,祝贺你从此开始成为OpenCV的一员。

注意:图片应和.cpp文件放在一块,或者使用路径名,路径要使用双斜杠//。

 

【测试代码】

#include<opencv2/opencv.hpp>using namespace cv;int main()
{Mat girl = imread("girl.jpg"); //载入图像到Matimshow("【1】动漫图", girl);//显示名为 "【1】动漫图"的窗口  waitKey(0);return 0;
}

【显示结果】

 

可能存在的问题


问题1:计算机中丢失msvcp120.dll

出现这个问题,重新下载一下msvcp120.dll,然后添加到对应bin文件夹中,也就是上面添加的环境变量,这两个dll已上传到百度云,请自行下载。

百度网盘链接:https://pan.baidu.com/s/1CLnom87fShhl7wF4yAKggw 
提取码:28a7 

 

问题2:计算机中丢失opencv_highgui2413d.dll

出现这个问题,一般就是环境变量没有添加对(路径问题)或者添加完环境变量之后没有重启电脑使环境变量生效。

 

问题3:应用程序无法正常启动,如下图所示:

没有将bin文件路径添加到环境变量中,还需要重启。 

 

问题4:出现以下错误不支持接口,主要情况为:摄像头打不开或者等到“不支持接口”完了之后才能打开

这个问题,打开摄像头时,一直返回false,有时还提醒选择视频格式FFMPEG,可能是OpenCV被破坏了,可以使用另外一个版本的OpenCV来进行测试,我目前使用的opencv342,有可能坏了,我就用好的opencv2410来测试,发现摄像头可以打开,重新下一个opencv就好了,同时也可以使用DirectX来修复一下dll。

VideoCapture cap(0);while (cap.isOpened())

 

问题5:“CAP_PROP_FRAME_COUNT”: 未声明的标识符 或者“CAP_PROP_FRAME_COUNT”: 不是“cv”的成员 

出现这种情况,可能是由于OpenCV版本导致的,OpenCV3可以这样写,但是OpenCV2就需要写成CV_CAP_PROP_FRAME_COUNT

 

问题6:弹出错误提示框“找不到mfc100”

去360下载微软常用运行库合集,一般360会自动弹出。


http://chatgpt.dhexx.cn/article/Y3NMykGV.shtml

相关文章

伺服控制原理 及RT and IRT

什么是伺服系统&#xff1f; 以物体的位置、方向、速度等为控制量&#xff0c;以跟踪输入给定制的任意变化为目的&#xff0c;所构成的自动闭环控制系统。 伺服系统组成&#xff1a; 伺服系统是具有负反馈的闭环自动控制系统&#xff0c;由控制器、伺服驱动器、伺服电机和反…

ERTEC200P-2 PROFINET设备完全开发手册(3-1)

3. 读写周期数据 PROFINET的基本通讯模型如下图&#xff1a; Profinet 是基于标准以太网技术的应用层协议&#xff0c;支持4种类型的数据通道 标准通道&#xff1a;参数化及配置&#xff0c;读诊断数据&#xff0c;设备信息(I&M)&#xff0c;资产信息 (AMR) ;&#xff08…

ERTEC200P-2 PROFINET设备完全开发手册(8-2)

8.2 IRT通讯原理及API PROFINET RT通讯的特点&#xff1a; 典型的PROFINET网络如下图所示。 其中&#xff1a; T1: 采样输入 T2: IO背板周期 T3: Profinet I/O 通讯周期 T4: CPU组织块OB1执行周期 T5: Profinet I/O 通讯周期 T6: IO背板周期 T7: 建立输出 在PRO…

多维IRT模型的EM估计

多维IRT模型的EM估计 MIRT &#xff08;Multidimensional Item Response Theory&#xff09;多维项目反应理论。与一维项目反应理论的区别只是在于对于潜在变量的 θ i \theta_{i} θi​ 的建模&#xff0c;一个是unidimensional latent trait θ i \theta_{i} θi​&#xf…

R语言IRT理论:扩展Rasch模型等级量表模型lltm、 rsm 和 pcm模型分析心理和教育测验数据可视化

最近我们被客户要求撰写关于IRT理论的研究报告&#xff0c;包括一些图形和统计输出。 摘要 我们首先介绍扩展 Rasch 模型的方法论&#xff0c;然后是一般程序描述和应用主题,包括简单的 Rasch 模型、评级量表模型、部分信用模型及其线性扩展。这种线性结构的结合允许对协变量…

ERTEC200P-2 PROFINET设备完全开发手册(8-1)

8.1 IRT通讯实验 这里我们使用APP3 IsoApp&#xff0c;修改源代码usrapp_cfg.h的宏为 #define EXAMPL_DEV_CONFIG_VERSION 3 使能App3&#xff0c;对应的主程序为“usriod_main_isoapp.c” 编译后下载运行。打开4.2建立的TIA项目&#xff0c;添加等时模式组织块&#xff0c…

ERTEC200P-2 PROFINET设备完全开发手册(9-2)

9.2 运行AC1/AC4参考代码 修改源代码usrapp_cfg.h的宏为 #define EXAMPL_DEV_CONFIG_VERSION 44 编译后下载到评估板运行AC4示例程序 在TIA中导入GSDML-V2.35-Siemens-ERTEC200pApp44-20210623.xml。新建项目&#xff0c;添加PLC和Devkit设备。 按照如下图所示配置模块&am…

可解释知识追踪(整理更新)

微观角度的可解释性&#xff0c;一个深度学习模型的可解释性是其内 在的固有性质&#xff0c;指模型的决策在多大程度上可以被人类预测和理解。模型的可解释性越强&#xff0c;代表模 型的行为对人类越透明&#xff0c;模型的不确定性也就越低&#xff1b;反之模型的可解释性越…

IRT模型估计-EM算法

IRT模型中参数估计 IRT(Item Response Theory) 项目反应理论。是教育评估与心理测量理论中的重要模型。主要目的是通过被试(examinees) 的对于一套试题的反应(responses), 对被试 的能力(ability parameters) 参数 θ \theta θ 和题目(item parameters) 作出估计。由于被试的…

技术话题(2)实时通讯RT和同步实时通讯IRT的区别

目前西门子 S7-1200 PLC仅支持RT通讯&#xff0c;与 V90 PN 连接做位置控制和速度控制均是通过PROFINET通讯来实现的。 而 S7-1500 PLC 支持IRT通讯&#xff0c;与 V90 PN 做位置控制和速度控制也是由PROFINET通讯来实现的。 下面我们为大家介绍一下RT通讯的特点&#xff1a;…

IRT模型

IRT模型是用来分析考试成绩或者问卷调查数据的数学模型。这些模型的目标是来确定的潜在心理特征&#xff08;latent trait&#xff09;是否可以通过测试题被反应出来&#xff0c;以及测试题和被测试者之间的互动关系。在IRT模型的理念是一个学生回答一个问题是否正确这个结果是…

浅谈知识追踪(BKT、IRT、DKT)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、知识追踪是什么&#xff1f;二、具体内容1.基于贝叶斯的知识追踪&#xff08;BKT&#xff09;项目反应理论&#xff08;IRT&#xff09;深度知识追踪&#…

IRT

文章目录 CTT(classical test theory)历史定义parallel testCronbachs α \alpha α 项目评估P-valueitem-total correlation 缺点 IRT(Item response theory)对于CTT的改进定义三大假设IRF3PL(three parameter logistic model)IRF形态PL模型分类 逻辑正态模型 模型拟合分析项…

Deep-IRT Make Deep Learning Based Knowledge Tracing Explainable Using Item Response Theory

写在前面&#xff1a; 本文在DKVMN的基础上结合项目IRT&#xff0c;加入了student ability network 和 difficulty network两个网络&#xff0c;增加深度知识追踪的可解释性 1 摘要 基于深度学习的知识追踪模型已被证明在不需要人工设计特征的情况下优于传统的知识追踪模型&…

IRT模型学习小结

文章目录 IRT模型学习小结关于IRT模型 IRT模型原理模型介绍参数估计 应用场景 IRT模型学习小结 关于IRT模型 与IRT模型相对应的经典测量理论CCT。经典测量理论与项目反应理论在测量领域均占有重要地位。经典测量理论形成较早&#xff0c;但是经典测量理论却有一些难以克服的缺…

自适应学习系列(一)IRT简介

2019独角兽企业重金招聘Python工程师标准>>> 自适应学习之IRT简介 一、近端发展区(ZPD) Zone of Proximal Development&#xff08;ZPD&#xff09;是由心理学家Vygotsky提出来的一种学习理论&#xff0c;是目前自适应学习常用的思考模型。他认为&#xff0c;能力高…

IRT模型的参数估计方法(EM算法和MCMC算法)

1、IRT模型概述   IRT&#xff08;item response theory 项目反映理论&#xff09;模型。IRT模型用来描述被试者能力和项目特性之间的关系。在现实生活中&#xff0c;由于被试者的能力不能通过可观测的数据进行描述&#xff0c;所以IRT模型用一个潜变量 θθ 来表示&#xff…

知识追踪常见建模方法之IRT项目反应理论

目录 A.项目反应理论&#xff08;IRT item response theory&#xff09; 概述 历史发展 特点 模型 A.项目反应理论&#xff08;IRT item response theory&#xff09; 概述 IRT理论即项目反应理论(Item Response Theory, IRT)&#xff0c;又称题目反应理论、潜在特质理论…

知识追踪系列之IRT

IRT简介 IRT理论即项目反应理论(Item Response Theory, IRT)。F. Lord在1951年从普林斯顿大学毕业时的博士论文《A Theory of Test Scores》被认为是IRT理论的开端之作。IRT最早使用在心理学领域&#xff0c;目的是做能力评估。现在已广泛应用于教育行业&#xff0c;用于校准评…

贝叶斯分类器(上)

目录 一、有关贝叶斯的简介 二、相关数学知识 1.先验概率与后验概率 2.贝叶斯公式 3、最大后验概率 4、最大似然估计法 一、有关贝叶斯的简介 贝叶斯老爷子的名字&#xff0c;很多同学都耳熟能详。估计不少的同学都在数学上被贝叶斯折磨过。贝叶斯在数学方面主要研究概率论…