欢迎您访问第A百科网

c盘sources文件夹可以删除吗? 「从零学习OpenCV4」Win系统中安装

1004次浏览     发布时间:2024-04-02 07:22:27     编辑: 小白学视觉


大多数的学生开发者使用的是Windows系统,在Windows系统中就不得不提到微软强大的Visual Studio集成开发环境(IDE),Visual Studio拥有大量不同的版本,而不同版本对于OpenCV版本的兼容性也不尽相同。虽然已经发布Visual Studio 2019,但是目前OpenCV 4.1仅支持Visual Studio 2015和Visual Studio 2017两个版本。因此对于在Windows环境下使用OpenCV4.1版本的开发者,需要将IDE更新到提到的两个版本。Visual Studio的安装和使用并不是本书的重点,读者可以去微软官网下载需要的版本,按照教程完成安装和使用。笔者使用的是Visual Studio 2015版本,因此推荐读者在学习本书的过程中与笔者使用同一版本IDE,这样可以减少在运行示例代码过程中的调试时间,将更多的精力用在学习OpenCV的算法和代码中。

在Windows环境下安装主要包含5个步骤,分别是下载和安装OpenCV SDK、配置包含路径、配置库目录、配置链接器、配置环境变量。当每一步都配置完成后便可以开始OpenCV的学习之旅,接下来将会对每一步进行详细的介绍。

01 下载和安装OpenCV SDK

OpenCV SDK获取非常简单,通过搜索引擎可以直接搜索到OpenCV官网,在官网中找到Releases选项,里面会有历史发布的OpenCV各个版本,找到OpenCV 4.1版本的下载界面,发现有多个可以选择项,如图1-1所示。其中Docs选项链接OpenCV的文档库包含模块组成、函数介绍等内容,不过很可惜文档全部是英文的,部分同学阅读起来还是存在着很多不方便之处。Sources选项是Ubuntu等Linux系统下的安装包,关于其安装方式,我们会在后面介绍。GitHub选项链接到GitHub中OpenCV 4.0版本的下载文件,其内容与通过其他选项下载的内容是一致的。Windows选项、iOS pcak选项和Android选项分别是在Windows系统、iOS系统和Android系统下的安装包。很遗憾OpenCV4.0并不支持Android环境的开发,但是OpenCV 4.1版本已经支持Android环境。最后一个选项Release Notes选项是最新版本的更新信息。


图1-1 OpenCV 4.0版本安装包下载区域


下载完成后得到“
opencv-4.1.0-vc14_vc15.exe”文件,便可以开始安装过程。其实所谓的安装是一个解压的过程,可执行文件是一个自解压的程序,双击后便会提示我们选择解压路径。这里根据自己需求选择路径即可,特别要说明的是,该程序会将所有文件解压在opencv的文件夹下,因此不需要在选择解压路径中单独新建一个opencv文件夹。由于笔者电脑安装了多个版本的OpenCV,为避免混淆,单独创建一个名为opencv4的文件夹,解压到H:\opencv4。选择好路径后点击【Extract】按钮,便可以等待解压过程的结束。整个OpenCV4的大小约为1G,根据电脑的性能不同,等待时间从几十秒到几分钟不等。安装过程图片如图1-2和图1-3所示。

图1-2 选择提取OpenCV路径


图1-3 等待解压过程


解压结束后,去刚才选择的路径下查看是否多了一个名为opencv的文件夹,该文件夹内含有build和sources两个子文件夹,如果没有,说明解压错误,建议删除后重新解压。build文件夹是主要的OpenCV相关文件,里面含有头文件与库文件等重要信息,接下来的环境配置工作都将围绕其展开。sources文件夹里放置的是源码以及例程和图片,后续也会对其中的部分进行介绍。如果想减少占用硬盘空间,原则上可以删除sources文件夹,但是这里并不推荐大家这样做,毕竟大多数情况下我们计算机的硬盘空间是充足的。


02 配置包含路径


配置环境主要目的是告诉你的计算机你安装的OpenCV放在哪里,以及告诉你的IDE应该去哪里寻找头文件与库文件。为了完成与IDE的沟通,我们首先启动Visual Studio 2015,创建一个新的项目。在弹出的新项目选项中,查看自己已安装的Visual Studio内容,选择Visual C++中的Win32选项,在Win32项目和Win32控制台应用程序中选择后者。根据我们需求修改项目名称,选择存放的位置。为了测试OpenCV,我们将项目名称修改为opencv4_test,存放在F:\opencv\内,如图1-4所示。


图1-4 创建Win32控制台应用程序界面


完成项目名称填写后,点击【确定】按钮,会跳转出Win32应用向导,这里需要修改“附加选项”:选择“空项目”,取消“安全开发生命周期(SDL)检查”选项,点击【完成】按钮,完成空项目的创建。如图1-5所示


图1-5 应用程序向导


完成创建后,可以在界面的右侧发现“解决方案资源管理器”,打开opencv4_test项目左边的小三角,可以看到“外部依赖项”、“头文件”、“源文件”以及“资源文件”等四个文件夹,如图1-6所示。接下来我们需要在“源文件”里添加项目cpp文件用于编写程序,首先右键【源文件】选择【新建项】,在弹出的页面内选择“C++文件(.cpp)”并修改文件名称,这里我们将其命名为main文件,点击【添加】完成空白源文件的创建,如图1-7所示。

图1-6 空项目的解决方案资源管理器

图1-7 向“源文件”中添加空白cpp文件


然后修改界面上方的“Debug”模式,将其修改为“x64”模式,如图1-8所示。

图1-8 修改Debug模式为x64


在完成空项目的创建之后,正式开始包含路径的配置。依次点击界面上方的【视图】→【其他窗口】→【属性管理器】,在右侧会出现“属性管理器”界面,如图1-9所示。打开“Debug | x64”前方的小三角形,双击【Microsoft.Cpp.x64.user】打开属性页,如图1-10所示。

图1-9 属性管理器界面

图1-10 属性页


属性页中的“VC++目录”中的“包含目录”、“库目录”和“链接器”中的“附加依赖项”便是我们需要修改的地方。在“包含目录”里添加两个文件路径,分别是:

  • H:\opencv4\opencv\build\include
  • H:\opencv4\opencv\build\include\opencv2

重点需要留意一下,这里不同于之前版本,这里包含目录里只有两个,取消了原来的…\inclde\opencv这个路径,是因为在…\include\这个文件夹里只有一个opencv2文件夹,OpenCV 4.1将两个文件夹合并在了一起。添加完成两个路径后,便完成了包含路径配置工作。


03 配置库目录


库目录配置过程与包含路径配置过程相似,只需要寻找到对应的目录路径即可。笔者的配置路径如为:

H:\opencv4\opencv\build\x64\vc14\lib

需要说明的是,“…\vc14\”指的是在Visual Studio 2015中使用,而如果使用的是Visual Studio 2017版本,就需要选择“…\vc15\”。这里如果选择错误,就会造成版本不兼容的问题,会出现配置失败的一系列问题。所以读者一定要根据自己的实际情况而选择。


04 配置链接器


链接器的配置应该是OpenCV 4.1最大的改变,为了极大的方便开发者使用,节省配置时间,它简化了库文件中的lib文件数目。打开库目录路径,发现lib文件数目只有两个,如图1-11所示。这两个文件的名字很像,唯一区别就是一个后面含有“d”,而另一个没有。不含有的文件是在Release模式下使用,配置该模式的时候才使用。含有“d”的文件是在Debug模式下使用的,由于我们现在是在Debug模式下,因此我们选择此文件。打开链接器左侧的三角形,在“输入”项中的“附加依赖项”添加opencv_world410d.lib,完成链接器的配置。

图1-11 库文件中的lib文件


05 配置环境变量


我们完成了告诉Visual Studio 2015去哪里寻找OpenCV的工作,接下来该告诉计算机OpenCV在哪里。找到“我的电脑”,右键选择【属性】,打开电脑的系统设置界面,并选择【高级系统设置】,进入系统属性界面。如图1-12所示。

图1-12 系统设置界面


在系统属性界面内选择【环境变量】,并在新跳转出的页面中的“系统变量”部分找到“Path”变量,如图1-13所示,在其后面添加如下路径:

H:\opencv4\opencv\build\x64\vc14\bin

这里要注意,我们会在用户变量和系统变量里都会发现“Path”变量。理论上两者只需要配置一个就可以完成,但是一台计算机上可能拥有多个用户,因此建议在系统变量里添加路径。同时,由于可能前期配置过其他的变量,在添加OpenCV变量的同时,不要将之前的配置内容是删除,而是使用分号将不同的路径分开,避免对其他环境产生影响。

图1-13 系统环境变量配置界面


06 验证配置结果


完成了所有的配置过程后,需要通过程序验证配置是否成功。但是在此之前需要说明的是,配置流程没有顺序要求,即可以先完成Visual Studio的配置工作再完成计算机环境变量的配置,也可以反过来进行。不过需要说明的是,按照本书的流程进行配置,在配置完成后需要重启Visual Studio才可以在程序中加载OpenCV的头文件。

我们在前面创建的main源文件中输入代码清单1-1中的程序,该程序的主要目的是读取一张图片并显示该图片,代码原理我们会在后面的章节中详细介绍。现在只需要将代码输入,构建解决方案,运行程序验证环境配置是否成功。

代码清单1-1 install_test.cpp测试OpenCV 4.1是否安装成功
1.  #include <opencv2\opencv.hpp> //加载OpenCV 4.1头文件
2.  #include <iostream>
3.  
4.  using namespace std;
5.  using namespace cv; //opencv的命名空间
6.  
7.  int main()
8. {
9.    Mat img; //声明一个保存图像的类
10.    img = imread("G:/opencv/lena.png"); //读取图像,根据图片所在位置填写路径即可
11.    if (img.empty()) //判断图像文件是否存在
12.    {
13.      cout << "请确认图像文件名称是否正确" << endl;
14.      return -1;
15.    }
16.    imshow("test", img); //显示图像
17.    waitKey(0); //等待键盘输入
18.    return 0; //程序结束
19.  }

运行如上程序,我们得到如图1-14的结果,证明OpenCV环境配置成功,可以开启OpenCV的学习之路了。



相关文章

古诗四时田园杂兴的赏析(范成大20首经典诗词赏析)

范成大(1126-1193),字至能,号称石湖居士。汉族,平江吴县(今江苏苏州)人。南宋诗人。谥文穆。从江西派入手,后学习中、晚唐诗,继承了白居易、王建、张籍等诗人新乐府的现实主义精神,终于自成一家。风格平易浅显、清新妩媚。诗题材广泛,以反映农村社会生活内容的作品成就最高。他与杨万里、陆游、尤袤合称

2024-11-21 12:00

齐鲁大地指哪里(各省以大地为名称的别称都是啥?)

本文所说不是简称,而是以大地为名的别称。比如山东,又称为齐鲁大地。辽宁被称为辽沈大地,诸如此类。下面我们来看看各个省和直辖市都称为什么大地吧:辽宁——辽沈大地北京——京华大地天津——津沽大地河北——燕赵大地山西——三晋大地江苏——三吴大地浙江——钱江大地、之江大地安徽——江淮大地江西——赣鄱大地福建

2024-11-21 11:45

高朋是什么意思(传统文化知识)

1、古代常见敬辞:敬辞,即表示对他人敬重的词语。令--意思是美好的,用于称号对方的亲属。如令尊、令堂、令郎、令爱;惠--用于对方对待自己的行为动作。如惠顾、惠存、惠赠;垂--用于他人(多是长辈或上级)对自己的行动。如垂问、垂询、垂念、垂青、垂爱、垂怜;赐--用于敬称他人对自己的指示、光顾、回答等。如

2024-11-21 11:30

印第安纳州位于美国哪里(美国冷知识——印第安纳州)

印第安纳州位于美国中东部,名字原意为“印第安人的土地”,这里气候温润,生活着600万人口。1816年12月,其作为第19个自由州加入美联邦。1、美国的十字路口印第安纳州位于美国的东西往来必经之路,全国5家最大的运输公司总部均位于这里,因此又被称为“美国的十字路口”。该州历史上曾被英、法、西班牙轮番殖

2024-11-21 11:15

猪的优点有哪些方面(盘点猪全身上下的10大优点)

作为爱猪人士,呼吁大家最好不要吃人类的好朋友“猪猪”,很残忍。猪是一种非常重要的家畜,猪肉是我国不可缺少的肉类,俗话说,猪有三宝,口感独特,深得大家的喜爱,也为人们的日常生活提供了许多便利。猪除了供人们食用之外,猪身上还有很多其他的优点,例如猪的嗅觉能力是狗的三倍,其作战能力也不是狗可以比的,如果只

2024-11-21 10:46

油爆双脆的原料是什么(油爆双脆的美食传承与故事)

在这个晴朗的午后,我漫步在山东古城的街头,尽享这份宁静和温馨。脚下的鹅卵石路让我感受到历史的沉积,而突然传来的一阵阵食物香气,又唤醒了我对美食的渴望。我跟随着香气来到一家颇具特色的鲁菜餐馆,踌躇满志地选择了一道传统名菜——油爆双脆。油爆双脆,始于清代中期,是山东历史悠久的传统名菜,用猪肚尖和鸡胗片为

2024-11-21 10:31

定林所居溪和山有什么特点(解读王安石定林所居)

在浩瀚的中华诗词长河中,王安石的《定林所居》如同一幅淡雅的水墨画,轻轻铺展在我们面前,让人不由自主地放慢脚步,跟随诗人的笔触,步入那片超脱尘嚣的世外桃源。今天,就让我们化身为一位风趣幽默的国学导游,一起踏上这场穿越千年的闲云野鹤之旅。 穿越时光隧道与古人共赏诗词之美 王安石《定林所居》 定林所居宋·

2024-11-21 10:16

交通事故扣车放车条件(扣留车辆的几种情形)

交通事故中,什么情况下会被暂扣车辆呢?以下是几种情形:1、公路客运车辆载客超过额定乘员的,处二百元以上五百元以下罚款;超过额定乘员百分之二十或者违反规定载货的,处五百元以上二千元以下罚款。2、货运机动车超过核定载质量的,处二百元以上五百元以下罚款;超过核定载质量百分之三十或者违反规定载客的,处五百元

2024-11-21 10:01

顶层楼房优缺点有哪些(买顶层真的弊大于利吗?)

顶层,也要分是多层洋房(总楼层6~7层)的顶楼,还是高层住宅的顶楼。多层洋房的顶楼,很多还是顶复,可以说是一房难求,非常稀缺的户型,而且卖价还不低;而高层住宅的顶楼,相对来说,弊端和硬伤会更多一些。常见的高层住宅的顶楼,被吐槽比较多的毛病,主要集中在以下几个方面:1、楼顶渗水,潮湿楼顶渗水,几乎是每

2024-11-21 09:46

氢气还原氧化铜化学方程式是什么(【高中化学】公式、口诀一网打尽!)

高中化学常用方程式:高中常用化学方程式之分解反应:1.水在直流电的作用下分解:2H2O通电2H2↑+O2↑2.加热碱式碳酸铜:Cu2(OH)2CO3加热2CuO+H2O+CO2↑3.加热氯酸钾(有少量的二氧化锰):2KClO3====2KCl+3O2↑4.加热高锰酸钾:2KMnO4加热K2MnO4+

2024-11-21 09:31