超详细:VS配置OpenCV教程,需要收藏

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

目录 

安装环境说明

下载OpenCV

配置OpenCV开发环境

属性表

测试

可能存在的问题


 安装环境说明 

操作系统:Windows10

OpenCV版本:OpenCV2和OpenCV3

VS版本:VS2015或者VS2017


 下载OpenCV

OpenCV下载地址:Home - OpenCV或者直接搜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已上传到百度云,请自行下载。

百度网盘链接:百度网盘 请输入提取码 
提取码: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会自动弹出。


在这里给大家准备了一份最全面人工智能资料包,从AI入门必备知识技能到CV\BI\NLP三大方向,整理了来自Ai领域各个大牛的教学视频,以及各方向学习路线与配套工具包教程,尽可能满足这些方向的学习需求,需要可加v自取:


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

相关文章

【OpenCV教程合集版】一文入门和精通OpenCV(C/C++)

文章目录&#xff08;OpenCV版本4.6.0&#xff09; 1.数据类型2.矩阵基本操作2.1 全零矩阵2.2 全一矩阵2.3 单位矩阵2.4 矩阵转置2.5 求逆矩阵2.6 逗号式分隔创建矩阵2.7 矩阵定义(只列出常用的)2.7.1 数据类型Scalar 2.8 通过ptr与at函数遍历矩阵2.8.1 Vec类型 2.9 通过迭代器…

openCV超详细入门教程(python版)

涉及内容&#xff1a; 背景提取颜色过滤边缘检测用于对象识别的特征匹配一般对象识别 你将需要两个主要的库&#xff0c;第三个可选&#xff1a;python-OpenCV&#xff0c;Numpy 和 Matplotlib。 一、加载图片 首先&#xff0c;我们正在导入一些东西&#xff0c;我已经安装了…

OpenCV的简单使用教程与基本函数(C++版本)

OpenCV的简单使用教程&#xff08;C&#xff09; OpenCV简介OpenCV的使用基础打开、显示和保存图像图像存储变量 Mat类图像元素的存储读入图像文件创建Mat类复制Mat类图像元素的访问OpenCV画图命令行交互界面 OpenCV简介 OpenCV是一个开源发行的跨平台计算机视觉和机器学习软件…

OpenMV入门

1. 什么是OpenMV OpenMV 是一个开源&#xff0c;低成本&#xff0c;功能强大的 机器视觉模块。 OpenMV上的机器视觉算法包括 寻找色块、人脸检测、眼球跟踪、边缘检测、标志跟踪 等。 以STM32F427CPU为核心&#xff0c;集成了OV7725摄像头芯片&#xff0c;在小巧的硬件…

OpenMV零基础教程

一、资料导航 “工欲善其事&#xff0c;必先利其器”。在正式学习OpenMV之前&#xff0c;你必须知道一条或几条OpenMV的学习途径。这里推荐星瞳科技的中文官网教程&#xff0c;这个教程里面包括了OpenMV IDE的下载和安装、OpenMV上手教程、OpenMV中文文档、OpenMV详细参数以及O…

C++版本OpenCv教程

C版本OpenCv教程(一)Mat—基本的图像容器 目标 我们有多种方法从现实世界获取数字图像:数码相机、扫描仪、计算机断层扫描和磁共振成像等等。在以上任何情况下&#xff0c;我们(人类)看到的都是图像。然而&#xff0c;当将其转换到我们的数字设备时&#xff0c;我们所记录的是…

VS配置OpenCV教程(超详细)

目录 安装环境说明 下载OpenCV 配置OpenCV开发环境 属性表 测试 可能存在的问题 安装环境说明 操作系统&#xff1a;Windows10 OpenCV版本&#xff1a;OpenCV2和OpenCV3 VS版本&#xff1a;VS2015或者VS2017 下载OpenCV OpenCV下载地址&#xff1a;http://opencv.org…

伺服控制原理 及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模型分类 逻辑正态模型 模型拟合分析项…