写在前面的话

  1. 版权声明:转载请注明出处!
  2. 博主是一个小菜鸟,并且非常玻璃心!如果文中有什么问题,请友好地指出来,博主查证后会进行更正。
  3. 每篇文章都是博主现阶段的理解,如果理解的更深入的话,博主会不定时更新文章。
  4. 本文初次更新时间:2021.08.01,最后更新时间:2021.08.01。

本文是博主的第一篇文章,每次配置OpenCV都会遇见各种各样的问题,查阅大量教程才能配置成功,浪费大量时间和心情,考虑到网友也会遇见类似的问题,故有了这篇文章。本文适合各种版本VS和OpenCV配置问题,也提供了程序常见问题的解决方法,希望对大家有所帮助。

VS2019+OpenCV4.5.0+VC15超详细配置问题

  • 写在前面的话
  • 1.VS+OpenCV+VC版本对应关系
  • 2.官方链接
  • 3.相关环境信息
  • 4.图片步骤
  • 5.详细步骤
    • 5.1 安装VS和OpenCV
    • 5.2 设置系统变量
    • 5.3 拷贝dll文件
    • 5.4 新建项目
    • 5.5 新建属性文件
    • 5.6 配置属性
    • 5.7 勾选微软符号服务器<可选>
    • 5.8 测试图像
  • 6.配置文件
  • 7.其他问题
  • 参考文章

1.VS+OpenCV+VC版本对应关系

  1. C是VS的工作库之一,VS与OpenCV对VC都有版本间的对应。
  2. VS(virtual studio)是微软开发的一个集成开发工具,可以开发C++、C#、HTML、VB等1
  3. VC(virtual C++)是专门开发C++的工具。当安装VS的时候,会提示你选择开发环境,如果你选择C++,选择的就是VC编程平台2
    参考网址1:https://www.cnblogs.com/sakuraie/p/13341552.html.
    参考网址2:https://blog.csdn.net/HW140701/article/details/92850154.

以下是VS版本与VC版本的对应关系,以及OpenCV对VC版本的支持情况:

像OpenCV之类的库会以vcx.x作为文件夹号标致该文件夹下的库适用于哪个VS版本,例如:VS2017选择OpenCV下的vc15文件夹,vc15可由Opencv3.4.1或4.0.0提供,当然上述图片并没有覆盖所有版本,读者可自行官网查看相关文档。

2.官方链接

VS官网:https://visualstudio.microsoft.com/zh-hans/.
VS历史版本:https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/.

OpenCV官网:https://opencv.org/.
OpenCV历史版本:https://opencv.org/releases/.

3.相关环境信息

  1. Windows 10专业版

  2. OpenCV 4.5.0 —vc14 vc15(免费)
    下载网址:https://sourceforge.net/projects/opencvlibrary/files/4.5.0/opencv-4.5.0-vc14_vc15.exe/download.

  3. Visual studio 2019 community—vc15 vc16(免费)
    下载网址:https://visualstudio.microsoft.com/zh-hans/vs/.

故我们使用Visual studio 2019 community配置OpenCV 4.5.0下vc15库。

4.图片步骤

首先通过上述“1 VS+OpenCV+VC版本对应关系”选择配对的OpenCV和VS,其次通过上述“2官方链接”下载相应的软件安装包,最后安装激活后可直接参考下述图片配置环境。

步骤1:安装VS2019和OpenCV4.5.0


步骤2:设置系统变量后重启电脑

步骤3:拷贝dll文件(将bin文件夹下的三个dll文件分别拷贝至对应文件夹)



步骤4:创建C++空项目


步骤5:添加Debug X64模式cpp文件
步骤6:添加Debug X64模式的属性文件(此属性用于其他项目的配置)


步骤7:双击新建的属性表,添加包含目录(#include的设置)

步骤8:添加库目录(包含文件的源代码)

步骤9:添加附加依赖项(库文件的依赖)

步骤10:编写显示图片的源码测试

附源码:

//imageShow.cpp : 测试OpenCV环境配置是否成功
//图片显示成功则说明OpenCV环境配置成功
//by clchao,20210801#include <opencv2/opencv.hpp> //包含目录 下属 包含文件(或头文件)
#include <iostream>               //C++风格输入输出包含文件using namespace cv;                //名称空间int main()
{//Mat img = imread("C:\\Users\\clchao\\Desktop\\opencvText_win10_vs2019_opencv410_Debug_x64\\imageShowOpencv\\lena01.jpg");Mat img = imread("lena01.jpg");imshow("lena01 Viewer", img);waitKey(0);             //等待用户按键
}

5.详细步骤

建议:良好的命名习惯有时很有帮助,建议务必将计算机名、用户名、文件夹名等全部命名为英文字符

5.1 安装VS和OpenCV

  1. 通过上述“1 VS+OpenCV+VC版本对应关系”选择配对的OpenCV和VS,我们使用Visual studio 2019 community版本配置OpenCV 4.5.0下的vc15库
  2. 通过上述“2官方链接”下载相应的软件安装包;
  3. 安装激活。

5.2 设置系统变量

  1. 此电脑-右键-属性-高级系统设置-高级-环境变量-系统变量中的path变量也有教程选择用户变量下的path,笔者建议选择系统变量-编辑-新建-浏览,将OpenCV安装文件夹下的***opencv\build\x64\vc15\bin***opencv\build\x64\vc15\lib路径添加到当中。

注意:在其他配置教程中一般不用添加***opencv\build\x64\vc15\lib路径,读者可自行决定添加与否,但为了防止出问题建议添加;

  1. 博主选择vc15子文件夹,因为VS2019对应vc15或vc16;
  2. 路径添加后点击确定,并将外面能点击确定的地方全部点击。

5.3 拷贝dll文件

注意:网上很多配置教程没有这步,运行程序时可能会报找不到xxx.dll文件的错误,是因为没有将OpenCV里面的相关dll文件复制到C盘中的相应文件夹里。

  1. ***opencv\build\x64\vc15\bin路径文件目录下的opencv_world401.dll和opencv_world401d.dll文件复制到C:\Windows\SysWOW64这个文件夹里;
    ***opencv\build\x64\vc15\bin路径文件目录下的opencv_ffmpeg401_64.dll和opencv_world401d.dll文件复制到C:\Windows\System32这个文件夹里;
    如果是opencv其他的版本,把对应的dll文件移动到上述两个C盘文件夹即可;
  2. C:\Windows\SysWOW64对应32位文件操作,C:\Windows\System32对应64位文件操作,如果运行程序错误,可能是文件错误拷贝。


5.4 新建项目

  1. 创建新项目,笔者创建的是C++空项目,命名;
  2. 添加Debug X64的cpp文件,该文件用于显示图像测试OpenCV是否配置成功。


5.5 新建属性文件

  1. 菜单栏 -视图 -其他窗口 -打开属性管理器 -选择属性管理器中的Debug|x64 -右键 -添加新项目属性表 -命名 -添加 。

建议:命名 务必使用有意义的英文字符,例如:win10_vs2019community_opencv450_Debug_x64,表示Windows10专业版系统下安装的vs2019community版本配置opencv4.5.0开源库,使用的Debug_x64模式。

5.6 配置属性

  1. 双击新建的属性表- VC++目录 -包含目录 /库目录 -添加下列目录 :

包含目录:

***opencv\build\include
***opencv\build\include\opencv2

注意:在源代码中经常出现#include <opencv2/opencv.hpp>字样,其含义就是预编译包含目录***opencv\build\include\opencv2中的opencv.hpp文件。同理也可以预编译其他xxx.hpp,例如:

#include <opencv2/highgui/highgui.hpp>         //高层GUI图形用户界面模块头“highgui.hpp”
#include <opencv2/imgproc/imgproc.hpp>            //图像处理模块头文件“imgproc.hpp”
#include <opencv2/imgproc/types_c.h>
#include <opencv2/calib3d/calib3d.hpp>            //相机标定和三维重建头文件//2D特征模块头文件“features2d.hpp”

作为OpenCV学习者,应该养成定期阅读学习这些文件的习惯;
或者访问在线帮助文档(https://docs.opencv.org/4.5.0/index.html),这是最直接最暴力学习OpenCV的两种方法。

库目录:

***opencv\build\x64\vc15\lib

2.链接器 -输入 -附加依赖项 -添加下列文件 :
附加依赖项:

***opencv\build\x64\vc15\lib\opencv_world450d.lib
***opencv\build\x64\vc15\lib\opencv_world450.lib<可选>

或者直接键入:

opencv_world450d.lib
opencv_world450.lib<可选>

注意:450表示opencv4.5.0d表示是否为Debug调试<含d表示Debug,否则表示release>, release是发布程序时才会用到。当配置Release|X64时,附加依赖项添加opencv_world450.lib,笔者为了省事才一次添加两种,故上述加了<可选>标志,读者在实际配置操作的时候一定要将<可选>删除,注意两者一同添加可能导致一些错误。



5.7 勾选微软符号服务器<可选>

  1. 其实到上述步骤OpenCV已经配置完成,但VS2019总是报错缺少xxx.dll文件,可选择勾选微软符号服务器来下载缺失的dll文件3
    参考网址3:https://blog.csdn.net/weixin_43042467/article/details/105240489.

具体操作:
菜单栏 -调试 -选项 -调试 -常规 -勾选启动源服务器支持 ;
菜单栏 -调试 -选项 -调试 -符号 -勾选微软符号服务器 -在次目录下缓存符号<可选>-确定 。

  1. 注意:可用一个文件夹来缓存下载的dll文件,只初次加载。或者也可以等加载完成之后,取消勾选之前的选择,也没有问题。笔者新建了一个文件夹用于下载缓存,后面发现文件夹中下载了很多pdb文件!
  2. 至此opencv已经配置完成,注意解决方案平台那一栏要换成Debug | X64(因为我们一直都在配置Debug | X64)。

5.8 测试图像

  1. 附源码:
//imageShow.cpp : 测试OpenCV环境配置是否成功
//图片显示成功则说明OpenCV环境配置成功
//by clchao,20210729#include<opencv2/opencv.hpp>  //包含目录 下属 包含文件(或头文件)
#include <iostream>               //C++风格输入输出包含文件using namespace cv;                //名称空间int main()
{Mat img = imread("C:\\Users\\clchao\\Desktop\\opencvText_win10_vs2019_opencv410_Debug_x64\\imageShowOpencv\\lena01.jpg");//Mat img = imread("lena01.jpg");imshow("lena01 Viewer", img);waitKey(0);             //等待用户按键
}
  1. 附“lena01.jpg”图像:注意图片存放路径。

  2. 图片无法输出问题:读入图片错误(附两种方式)

绝对路径:

//注意这个地方是双斜杠,第一个斜杠是转义字符
Mat img = imread("C:\\Users\\clchao\\Desktop\\opencvText_win10_vs2019_opencv410_Debug_x64\\imageShowOpencv\\lena01.jpg");

图片路径:

Mat img = imread("lena01.jpg");

注意lena01.jpg必须在所建工程目录下

6.配置文件

  1. 配置完成后在自己新建的项目目录下会出现一个xxx.props文件,该文件便是配置的OpenCV属性。
    以后每次编写OpenCV程序,只需要属性管理器 -Debbug | X64 -右键 -添加现有属性表 -选择上述属性表xxx.props文件即可

7.其他问题

  1. “丢失xxx.dll文件或找不到xxx.dll文件”问题
    将bin目录下对应的xxx.dll文件复制到Debug目录下;
    或安装OpenCV时即将所有xxx.dll文件复制到C:\Windows\System32目录。
    确实找不到xxx.dll文件,可下载Everything工具检索相应文件。

System32文件夹:System32是Windows 操作系统的系统文件夹,是操作系统的中枢。包含了大量用于 Windows 的文件, 这里主要用于存储xxx.dll文件、 控制面板小程序(.CPL)、设备驱动 (.drv)、帮助文件 (.hlp 和 .cnt)、MS-DOS 工具 (.com)、语言支持文件 (.nls)、屏幕保护 (.scr)、安装信息文件 (.inf)以及其它用于支持、配置或操作的文件4。如果你配置X64,请将相应文件拷贝至此处。
参考网址4: https://blog.csdn.net/qq_44179564/article/details/109706780.

  1. 针对0xc000007b问题,DirectX Repair修复工具(请支持原作者)
    链接: DirectX修复工具增强版.
    链接: 0xc000007b的解决办法(续).

参考文章


  1. vs的vc,opencv的vc的对应指南 ↩︎

  2. VC版本号与VS对应关系 ↩︎

  3. VS2017配置OpenCV4.0.1教程(步骤超详细!!) ↩︎

  4. VS2019中安装及配置OpenCV-4.5.0过程 ↩︎

VS+OpenCV+VC超详细的配置教程相关推荐

  1. PyCharm与Anaconda超详细安装配置教程

    摘要:本文详细介绍如何在Windows 10中安装PyCharm和Anaconda这两款Python中必备的软件,博文中每一步均有详细截图和步骤讲解,最后介绍如何使用Anaconda创建虚拟环境并在P ...

  2. 【Node.js超详细安装配置教程(2022)】

    前言 一.Node.js是什么 二.Node安装 1.官网:Node.js (nodejs.org) 总结 前言 作为一名后端程序员,虽然会使用JAVA编写服务器后台,但在技术不断发展的今天,能多学一 ...

  3. [安卓开发笔记一]Android开发配置opencv环境超详细教程

    [安卓开发笔记一]Android开发配置opencv环境超详细教程 [更新于 2022年4月] 再次提醒,建议现在看到这篇文章的,仅仅把此文做一个流程参考,4年前android studio就使用cm ...

  4. Tomcat安装及配置教程(超详细的图文教程)(亲测)

    Tomcat安装及配置教程(超详细的图文教程) 1.什么是Tomcat Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下 ...

  5. 超详细Redis入门教程——Redis 的安装与配置

    前言 本文小新为大家带来 超详细Redis入门教程--Redis 的安装与配置 相关知识,具体内容包括Redis 的安装,连接前的配置,Redis 客户端分类(包括:命令行客户端,图形界面客户端,Ja ...

  6. mysql2008数据库配置_SQL Server 2008 R2 超详细安装图文教程

    这篇文章主要介绍了SQL Server 2008 R2 超详细安装图文教程,需要的朋友可以参考下 一.下载SQL Server 2008 R2安装文件 二.将安装文件刻录成光盘或者用虚拟光驱加载,或者 ...

  7. [转](转载+整理)超详细的cmake教程

    cmake教程 参考 什么是cmake cmake 常见语法罗列 CMake可用变量 入门案例 单个源文件 多个源文件 同一目录,多个源文件 多个目录,多个源文件 进阶案例 自定义编译选项 指定安装和 ...

  8. (转载+整理)超详细的cmake教程

    cmake教程 参考 什么是cmake cmake 常见语法罗列 CMake可用变量 入门案例 单个源文件 多个源文件 同一目录,多个源文件 多个目录,多个源文件 进阶案例 自定义编译选项 指定安装和 ...

  9. 超强、超详细Redis入门教程【转】

    这篇文章主要介绍了超强.超详细Redis入门教程,本文详细介绍了Redis数据库各个方面的知识,需要的朋友可以参考下 [本教程目录] 1.redis是什么 2.redis的作者何许人也 3.谁在使用r ...

最新文章

  1. “图灵测试不重要”,一个违背机器人界祖宗的决定
  2. could not load java7_xml导入properties文件报异常:Could not load JDBC driver class [${jdbc.driver}]...
  3. 项目: 用C语言写一个图形化的音乐播放器 【C++ / C】
  4. 在macOS X中gdb的codesigned问题解决
  5. python3 爬虫第三步 本文包你学会正则 不会就来锤我
  6. MongoDB:SpringBoot有关@Document(collection = )与@Document(collation= )注解的区别
  7. 使用IDA Pro动态调试SO文件
  8. Javascript多线程引擎(五)
  9. 详尽Ubuntu18安装搜狗输入法教程
  10. 注意!JWT不是万能的,入坑需谨慎!
  11. 用计算机处理表格信息,怎么制作表格-三线表丨做数据表格必须学会的处理技巧...
  12. C#调用excel报错 (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT))问题的解决方案
  13. 使用python控制其他软件运行_Python实现运行其他程序的四种方式实例分析
  14. 本周小折腾记录: ipad和电脑完成同屏功能
  15. 西电计算机科学与技术排名,2020最新世界学科排名:西电3个学科跻身全球10强,发展势头强劲...
  16. 全国第三次土壤普查实验室筛选开始 实验室要求理化检测指标仪器一览
  17. python获取文件大小
  18. Harris角点检测及数据分析
  19. OA系统以项目管理为中心,为会计事务所打造内外协同一体化平台
  20. 1.27 Daisy Chains(花瓣)

热门文章

  1. module 与 component 的区别
  2. 获取rowid的两种方法。
  3. Oracle Flashback之Flashback table和flashback drop
  4. 6本豆瓣高分书,国内外的技术大牛都在看!
  5. 祝读者朋友们新年快乐
  6. 排序函数sort()
  7. Loadrunner安装破解
  8. C端和B端的差异分析
  9. 11个好玩有趣的网站,一打开就停不下来
  10. docker如何查看宿主机到容器端口映射