Windos安装Visual Studio 2019,配置opencv2、3、4各版本环境以及image watch的使用(下面以opencv4.4.0为例)!!!


这里介绍了vs2019和opencv各个版本的下载方式及详细安装过程,以及每一步的安装过程原理,旨在记录自己的安装过程,也希望能帮助opencv环境安装过程中遇到困难的同学。另外,经测试,windows7和windows10的安装并无差别。下一篇打算记录linux下的安装过程。

一、Windos10安装Visual Studio 2019

首先下载VS2019下载器,推荐下载VS2019社区版,社区版是免费的VS2019下载地址
在这里插入图片描述
这里我们选择第一个社区版下载,得到vs_Community。
下载完后点击安装:
在这里插入图片描述
完成后,选择使用c++的桌面开发:
在这里插入图片描述

再选择安装位置,若无法安装,可能的原因是以前安装过vs,可参考博客,即可解决。
若无法更改 下载缓存 和 共享组件、工具和 SDK 的路径,删除注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\Setup下的SharedInstallationPath项,即可。
网速快的话10分钟左右即可完成安装。

二、配置Opencv

1、Opencv下载及文件夹简介

首先下载opencv,这里选择的是4.4.0版本,官网
下载太慢的话可以从百度云网盘提取码:lywb下载。

单击DownLoad,进入页面后等待5秒钟开始自动下载。

找到下载好的文件,双击安装(这其实是一个解压过程),选择解压目录,单击Extract会在选中的路径下自动创建名字是opencv的文件夹。解压好的内容如下:
在这里插入图片描述
其中,build文件夹中是支持opencv使用的相关文件,而sources中为opencv的源代码及相关文件。如果仅仅是希望将opencv写的程序在电脑中跑起来并节省磁盘空间,可以删除sources文件(如无必要不要删除)。

进入到…\opencv\build\include 目录,可以看到opencv和opencv2这两个文件夹。opencv这个文件夹里面包含着旧版的头文件,opencv2这个文件夹里面包含着新版OpenCV2系列的头文件。注意:opencv4的include取消了opencv文件夹。

opencv_modules.hpp文件里面存放的是OpenCV2中与新模块构造相关的说明代码,打开可以发现其定义的是OpenCV2所有组件的宏:
#define HAVE_OPENCV_CALIB3D
#define HAVE_OPENCV_CONTRIB
#define HAVE_OPENCV_CORE
#define HAVE_OPENCV_FEATURES2D
#define HAVE_OPENCV_FLANN
#define HAVE_OPENCV_GPU
#define HAVE_OPENCV_HIGHGUI
#define HAVE_OPENCV_IMGPROC
#define HAVE_OPENCV_LEGACY
#define HAVE_OPENCV_ML
#define HAVE_OPENCV_NONFREE
#define HAVE_OPENCV_OBJDETECT
#define HAVE_OPENCV_OCL
#define HAVE_OPENCV_PHOTO
#define HAVE_OPENCV_STITCHING
#define HAVE_OPENCV_SUPERRES
#define HAVE_OPENCV_TS
#define HAVE_OPENCV_VIDEO
#define HAVE_OPENCV_VIDEOSTAB
然后每个宏都对应着模块,有兴趣的可以自己查看,OpenCV模块官网

2、配置系统环境变量

接着来给电脑添加如下环境变量(需要根据自己的安装路径做相应修改):
D:\Install Document\opencv\build\x64\vc15\bin
变量值实际为bin文件夹的路径,x64表示运行环境为64位系统,vc15为编译环境为vs2015,注意:虽然我们用的环境是vs2019,但解压处理的opencv文件夹内是vc10和vc15,因此我们选择vc15。

具体做法为:右击计算机,选择 属性–高级系统设置
在这里插入图片描述
选择环境变量:
在这里插入图片描述
选择系统变量(S)中的Path,编辑:
在这里插入图片描述
把上面解压的路径复制进去:
在这里插入图片描述

3、在VS2019中配置Opencv

3.1 在VS2019中新建Opencv的工程

打开VS2019,选择继续但无需代码,
在这里插入图片描述

打开以后,打开 文件->新建->项目

在这里插入图片描述
创建C++解决方案,如下图所示,选择空项目
在这里插入图片描述
输入项目名称以及项目的位置,单击创建:
在这里插入图片描述
修改x86为行x64
在这里插入图片描述
注意:这里选择下x86还是x64是一个令人困惑的问题。对于32位系统,必须选x86,但是对于64位系统,就不一定是选择x64了。其实它跟多少位系统没有什么直接的关系,而是在于编译程序时使用哪个编译器,编译器是win32就选x86,编译器是win64就选x64。因此64位系统既可以是编译器win64,也可以是win32,所以选两者皆可。这里我选择的是x64。

3.2 工程包含(include)目录的配置

为了避免每次新建工程都要重新配置,这里介绍一个一劳永逸的方法。
点击右上角工程名字,然后选择属性管理器,如没有属性管理器,点击左上角 视图–其他窗口–属性管理器:
在这里插入图片描述
右键单击工程名字,添加新项目属性表,更改自己需要的名字和保存路径(配置好保存,下次新建opencv工程可以直接添加),
在这里插入图片描述
右键单击刚刚添加的项目属性表opencvDebug,选择属性:
在这里插入图片描述
单击左侧VC++目录,首先修改包含目录,选中以后点击编辑单击文件夹标志新建,然后选择目录,添加如下图所示的两个变量,单击确定.
D:\Install Document\opencv\build\include\opencv2
D:\Install Document\opencv\build\include
D:\Install Document\opencv\build\include\opencv//opencv4不需要添加
注意:因为前面说过opencv4的include取消了opencv文件夹,所以如果是4.几的版本则只需要添加两个,不确定的可以去include文件夹中看一下。

在这里插入图片描述

3.3 工程库(lib)目录的配置

重复上述过程,为库目录添加如下变量,单击确定
D:\Install Document\opencv\build\x64\vc15\lib
在这里插入图片描述
这里最好不要手动用键盘输入路径,而是去预览里面指定出来,因为路径不小心出错,可能在编译时出现LINK:fatal error LNK1104:无法打开文件“opencv_calib3d440.lib”

3.4 链接库的配置

还是接着上面的配置,在通用属性–链接器–输入–附加依赖项–编辑:
在这里插入图片描述
注意:如果是opencv2的版本,需要添加19个带d的debug版lib(如opencv_ml249d.lib)写在前面,19个不带d的release版lib(如opencv_ml249.lib)写在后面,即优先支持debug模式。上述内容无需手动输入,可以去lib文件夹里找,也可以Google或者百度搜索“Opencv2.4.9配置”。

但是,对于openCV3和openCV4,则只需要添加opencv_world440d.libdebug版或者opencv_world440.librelease版即可(这里的440指的是opencv4.4.0版本,需要根据自己的版本更改),且修复了带d和不带d的区别而导致的错误,将带d的lib作为链接库,程序在运行时可以同时支持debug和release版代码正确运行,不会像opencv一样报字符串一场造成的内存错误。

下面以openCV4为例,这里我用debug版本,所以只添加带d的,添加一下lib(手动输入或者粘贴)opencv_world440d.lib ,单击确定,如下图:
在这里插入图片描述
最后点应用:
在这里插入图片描述
然后,右键单击opencvDebug,选择保存:
在这里插入图片描述
会在一开始创建的路径下面保存一个opencvDebug.props文件。
下次需要创建opencv的工程时,就不需要再次配置opencv所需要的环境了,右键单击工程名字添加现有属性类,直接选择opencvDebug.props文件。

4 、运行测试程序(打开摄像头):

运行打开摄像头的程序:

#include <stdio.h>
#include "opencv2/highgui/highgui.hpp"  //Opencv highgui模块头文件
#include "opencv2/opencv.hpp"  //Opencv图像处理头文件
using namespace cv;  //包含cv命名空间,省略cv::Mat等,直接用Mat
using namespace std; //包含std命名空间,cout函数,等于std::cout

//--------------------------------------【main主函数】----------------------------
int main(int argc, char* argv[])
{
	VideoCapture capture(0);//从摄像头读入视频
	//【2】循环显示每一帧
	while (1)
	{
		Mat frame;  //定义一个Mat变量,用于存储每一帧的图像
		capture >> frame;  //读取当前帧
		imshow("读取视频", frame);  //显示当前帧
		waitKey(30);  //延时30ms
	}
	return 0;
}

运行结果出现相机画面。

如果在运行程序的时候,出现“无法启动此程序,因为计算机中丢失opencv_core440d.dll.尝试重新安装程序以解决此问题。”类似的错误,则有可能时因为环境变量配置不正确或者没有生效。

解决方法:可尝试再次配置系统环境变量后重启计算机,或者在windoes文件夹下加入OpenCV动态链接库,也就是将相关的.dll文件复制到windows操作系统的目录下。如果是32位系统放置的路径就是C:\Windows\System32,而64位系统,放置的路径为C:\Windows\SyWOW64。

三、安装Image Watch插件:

Image Watch是Microsoft Visual Studio的一个插件,可以在调试应用程序时可视化内存中的图像(例如,cv::Mat或IplImage_对象)。

vs2019社区版Image Watch插件下载:百度网盘:提取码:hvs1

确保使用的是debug模式,并且在适当的位置(如上述测试代码的imshow("读取视频", frame);处)设置的断点,调试运行至断点时即可激活image watch插件。如果没有显示Image Watch窗口,可以使用如下方法调用:菜单栏->视图->其他窗口->image watch,调出该插件。

Image Watch窗口左上角的单选按钮(Locals / Watch)选择下面的图像列表中显示的内容:Locals列出当前作用域中的所有OpenCV图像对象。 图像列表显示基本信息,例如宽度,高度,通道数,以及缩略图。单击该图像将在右侧的图像查看器中选择它以进行详细查看。 查看器允许平移(拖动鼠标)和缩放(鼠标滚轮)。 它还可以显示当前鼠标位置的像素坐标和色彩分量值,如下图所示。
在图像上使用滚轮操作实现缩放,放大到一定尺寸后将同时显示像素的BGR三个通道的值,如图所示:
在这里插入图片描述

右键单击缩略图菜单各项功能说明:
Expand All/Collapse All: 展开/全部折叠,展开/折叠当前列表中的所有项目
Expand New Items:展开新项目,控制是否最初展开或折叠新列表项目
Large Thumbnails:大缩略图,在两个缩略图大小之间切换
Auto Maximize Contrast:自动最大化对比度,如果未选中,则使用标准颜色映射规则将像素值映射到显示颜色。如果选中,则当前像素数据的值范围将映射到整个显示颜色范围(如Matlab的imagesc)。注意:此设置适用于所有图像。
1-Channel Pseudo Color: 1通道伪彩色,如果未选中,则单通道图像显示为灰度。如果选中,则使用伪彩色图(如Matlab的colormap jet)。注意:此设置适用于所有图像。
4-Channel Ignore Alpha: 4通道忽略Alpha,如果未选中,则四通道图像中的最后一个通道被解释为alpha。如果选中,则忽略最后一个通道。
Add to Watch:添加到监视,将所选项目添加到监视列表
Add Address to Watch:添加要监视的地址,将所选项的地址添加到监视列表。这对于在不同堆栈帧上观看图像很有用。
Dump to File:转储到文件,将所选图像转储到文件。支持的格式为PNG,JPG和BIN(Image Watch内部无损文件格式)。BIN文件仅适用于Image Watch;可以使用@file运算符将它们加载到监视列表中。

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值