【OpenCV人脸识别入门教程之一】安装OpenCV及Windows系统环境配置

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lsq2902101015/article/details/47004175


最近发现很多童鞋想学习基于OpenCV的人脸识别不得其法,正好博主前段时间在做这方面的东西,遂整理写成系列博客,一起交流学习。内容主要包括OpenCV配置、使用OpenCV实现人脸识别功能以及源码分析。


本篇文章主要介绍了如何安装OpenCV,以及在Visual Studio2012开发环境下配置OpenCV。


说明:本文的OpenCV版本为2.4.10,Visual Studio(下面简称VS)的版本是Visual Studio2012(vs11),系统是win7。


一、安装OpenCV

OpenCV的最新版本已经更新到3.0,但很多童鞋还在使用2.x的版本,所以本文以OpenCV2.4.10的版本(主要是博主在用这个版本大笑)为例进行讲解安装和环境配置,在文章后面也会介绍如何配置OpenCV3.0。

好啦,下面正式开始。

首先,OpenCV的下载地址:http://opencv.org/downloads.html,网页上有各个版本的OpenCV,根据自己的需要可自行下载。

找到Windows版下载下来


下载完成后,找到OpenCV的保存位置,双击,将出现如下界面:


即是将OpenCV文件解压到指定文件夹,可以根据自己的习惯指定解压的位置,这里会直接解压成名为“opencv”的文件夹,所以并不需要再新建opencv文件夹。

这里,博主直接将其安装在E盘的根目录下,等待解压完成,即完成了OpenCV的安装,其实是解压啦。

好啦,下面来进行Windows系统环境配置~


二、Windows系统环境配置

当然啦,电脑上必须先安装好Visual Studio,好啦,开始,这个部分包括系统环境配置和VS开发环境配置


1、配置系统环境变量(配置OpenCV的DLL链接库)


开发使用OpenCV中的函数均通过调用DLL链接库实现,所以我们需要将这些链接库的目录添加到系统环境变量中,这样才可以正常使用OpenCV.

右键”我的电脑“(或者菜单->控制面板->系统与安全->系统),在打开的界面左侧点击高级系统设置:



在“高级“菜单栏中,点击环境变量:



之后会弹出的窗口界面,在”系统变量(s)“中找到"Path",选中并点击编辑(或者双击)



在弹出的窗口中,将OpenCV的以下路径添加进去(请先看下面的注意事项,切不可直接复制),32位系统的童鞋只需添加第一个路径,64位系统的童鞋如果需要在x64平台上进行程序开发,需要全部添加。添加到变量值(v)中,注意中间要加分号(;),如果不知道自己电脑是32位还是64位操作系统,请看注意事项。


E:\opencv\build\x86\vc11\bin

E:\opencv\build\x64\vc11\bin




注意事项:

  • 切不可直接复制上面的目录,需要根据自己电脑上OpenCV的目录进行添加,比如博主的路径就在E盘的根目录下,比如将OpenCV安装在了”D:\Program Files“目录下,上述需要添加的路径将改为D:\Program Files\opencv\build\x86\vc11\bin

  • 对于32位系统的童鞋只需添加第一个(x86)的路径,64位系统的童鞋可以将两个路径都添加进去,这样在以后的开发中,可以随意切换开发平台,除非开发需要,建议只添加第一个(x86)目录路径

  • vc11代表Visual Studio2012,vc10代表Visual Studio2010,vc12代表Visual Studio2013,需要根据自己的VS版本来确定路径目录

  • 右键“我的电脑->属性”,可以查看电脑的系统类型



完成系统环境变量配置后,需要重启电脑才可生效,重启电脑后,我们来进行VS的环境配置。


2、Visual Studio开发环境配置


在VS里配置OpenCV需要新建一个工程项目,打开VS,并点击新建项目如下图(或者菜单栏“文件->新建->项目")



在弹出的窗口界面的左侧,选择”已安装->模板->Visual C++->Win32控制台应用程序“,并在下面的"名称(N)"和“位置”分别输入项目的名字和项目保存的位置,然后点击右下角“确定”,进行下一步



点击“下一步”



在接下来的界面中,选择“附加选项”下的 “空项目”,在前面打勾,并点击“完成”



现在,我们成功新建了一个工程,在VS左侧(或右侧)的解决方案资源管理器窗口中,选中“源文件”并右键->“添加”->"新建项"



在弹出的窗口中,选中“C++ 文件(.cpp)”,在下面的"名称(N)"一栏中修改文件的名字



这样就完成了添加新建C++源文件的操作,之后会在这个源文件里编写我们的第一个OpenCV代码生气。好啦,现在开始配置OpenCV开发环境。

首先呢,在菜单栏中,点击“视图”->“属性管理器”



这样就打开了“Test”项目的属性管理器,展开下面的分支,可以看到如下图所示



这里的“Debug“和”Release“是解决方案配置,”Debug“通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。“Release” 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。

OpenCV的使用也要区分Debug和Release两个版本,博主在一些其他博客文章中看到会将这两种版本统一进行配置,但在博主实际使用开发时出现了问题,所以在这里,博主建议大家按照下面的方法进行配置,亲测无误。


在上图的红色矩形框里,包括了两个条目:“Debug(Release)|Win32“和”Microsoft.Cpp.Win32.user",下面分别针对这两个条目介绍两种方法来配置VS环境:


方法一(配置一次成功后,将无需再在新建的工程里再进行配置)


(1)添加包含目录,配置OpenCV的头文件


双击”Microsoft.Cpp.Win32.user"(两个均可),在弹出窗口中,选择”通用属性->VC++ 目录->包含目录“,在其后的下拉菜单中选择”编辑“



点击下图中的新建目录(红色矩形内),将以下三个目录添加进去,注意自己电脑的实际"opencv\build\include"目录路径,切不可直接复制。比如将OpenCV安装在了D:\Program Files目录下,需要将目录改为D:\Program Files\opencv\build\include等。


E:\opencv\build\include

E:\opencv\build\include\opencv

E:\opencv\build\include\opencv2




添加完成后,点击确定。

在OpenCV的build\include文件里,都是OpenCV的头文件,如果在程序运行的时候出现无法找到头文件的问题,可检查包含目录是否添加正确。


(2)添加库目录,配置OpenCV的.lib文件


同样是在“Microsoft.Cpp.Win32.user属性页”窗口下,“通用属性->VC++目录->库目录”,在其后的下拉菜单中,点击“编辑”



然后将下面的路径添加进去,同样需要根据自己电脑的实际路径进行添加,这里不在赘述


E:\opencv\build\x86\vc11\lib

E:\opencv\build\x64\vc11\lib


同样这里需要注意,32位和64位操作系统的区别以及VS版本的区别,32位系统的同学只需添加第一个路径(x86),64位系统的童鞋根据需要天剑,建议只添加第一个(x86)的路径,以免不同版本的链接库出现混乱。




添加完成后,点击确定。

同样的,如果在程序运行时,提示无法打开.lib文件,可检查库目录是否添加正确。


(3)添加“附加依赖项”,配置OpenCV的.lib链接库


在“Microsoft.Cpp.Win32.user属性页”窗口下,“通用属性->链接器->输入->附加依赖项”,在其后的下拉菜单中,点击“编辑”



在弹出的窗口中,将下面各链接库的名字添加进去,注意,这里以d结尾的文件是Debug文件,不带d的是Release文件。

博主建议大家将不带d的是Release文件放在以d结尾的文件是Debug文件前面(如下所示),并一起添加到附加依附项里,因为在博主编程使用的时候发现,将Debug版本的链接库放前面,会造成使用Release版本时无法找到对应的链接库即不带d的文件。


以下是OpenCV2.4.10版的.lib,2.x的其他版本只需修改位数,例如,2.4.9版将改为opencv_objdetect249.lib等。


opencv_objdetect2410.lib
opencv_ts2410.lib
opencv_video2410.lib
opencv_nonfree2410.lib
opencv_ocl2410.lib
opencv_photo2410.lib
opencv_stitching2410.lib
opencv_superres2410.lib
opencv_videostab2410.lib
opencv_calib3d2410.lib
opencv_contrib2410.lib
opencv_core2410.lib
opencv_features2d2410.lib
opencv_flann2410.lib
opencv_gpu2410.lib
opencv_highgui2410.lib
opencv_imgproc2410.lib
opencv_legacy2410.lib
opencv_ml2410.lib

opencv_ml2410d.lib
opencv_calib3d2410d.lib
opencv_contrib2410d.lib
opencv_core2410d.lib
opencv_features2d2410d.lib
opencv_flann2410d.lib
opencv_gpu2410d.lib
opencv_highgui2410d.lib
opencv_imgproc2410d.lib
opencv_legacy2410d.lib
opencv_objdetect2410d.lib
opencv_ts2410d.lib
opencv_video2410d.lib
opencv_nonfree2410d.lib
opencv_ocl2410d.lib
opencv_photo2410d.lib
opencv_stitching2410d.lib
opencv_superres2410d.lib
opencv_videostab2410d.lib


上述文件名即E:\opencv\build\x86\vc11\lib目录下所有的文件名。




这里.lib文件所对应的即dll文件,在使用OpenCV时,程序会根据.lib文件调用dll文件。

如果方法一出现问题,可以按照方法二进行配置。


方法二(每次新建项目都需要配置)


前两步配置即

(1)添加包含目录,配置OpenCV的头文件


(2)添加库目录,配置OpenCV的.lib文件

和方法一的步骤相同,请按照上述步骤操作,不再赘述,区别在于第三步,如下


(3)添加“附加依赖项”,配置OpenCV的.lib链接库


还是在项目的属性管理器窗口,双击”Debug|Win32“,这样打开的是“Debug属性页”



在Debug属性页下,选择“通用属性->连接器->输入->附加依赖项”,在其后的下拉菜单中点击“编辑”



在弹出的“附加依赖项”窗口里,添加如下字符,即添加Debug版本的.lib文件(以d结尾),其他版本的OpenCV注意尾数的不同。


opencv_ml2410d.lib
opencv_calib3d2410d.lib
opencv_contrib2410d.lib
opencv_core2410d.lib
opencv_features2d2410d.lib
opencv_flann2410d.lib
opencv_gpu2410d.lib
opencv_highgui2410d.lib
opencv_imgproc2410d.lib
opencv_legacy2410d.lib
opencv_objdetect2410d.lib
opencv_ts2410d.lib
opencv_video2410d.lib
opencv_nonfree2410d.lib
opencv_ocl2410d.lib
opencv_photo2410d.lib
opencv_stitching2410d.lib
opencv_superres2410d.lib
opencv_videostab2410d.lib




点击确定。


然后,在项目属性 管理器窗口下,双击“Release|Win32”,打开"Release属性页",进行上面相同的操作,不在赘述,看图



将下面字符添加到“附加依赖项”,即Release版本的.lib文件,其他版本的OpenCV注意尾数的不同。


opencv_objdetect2410.lib
opencv_ts2410.lib
opencv_video2410.lib
opencv_nonfree2410.lib
opencv_ocl2410.lib
opencv_photo2410.lib
opencv_stitching2410.lib
opencv_superres2410.lib
opencv_videostab2410.lib
opencv_calib3d2410.lib
opencv_contrib2410.lib
opencv_core2410.lib
opencv_features2d2410.lib
opencv_flann2410.lib
opencv_gpu2410.lib
opencv_highgui2410.lib
opencv_imgproc2410.lib
opencv_legacy2410.lib
opencv_ml2410.lib




点击确定,配置完成。

这样配置后,不用担心,Debug版本和Release版本的链接库的混用,但再次提醒,方法二需要在每次新建项目的时候重新配置。



对于OpenCV3.0版本,也是按照上述方法进行配置,但要将“附加依赖项”里的.lib的的文件名只需改为添加:

Debug版本的库:

opencv_ts300d.lib

opencv_world300d.lib 


Release版本的库:

opencv_ts300.lib

opencv_world300.lib




好啦,至此,OpenCV的配置完成,下面编写个简单的程序进行测试。


三、测试OpenCV


在上面新建的Test工程里,将下面的代码写到main.cpp源文件里,或者新建一个工程,测试OpenCV是否可以正常使用。


程序的功能就是载入一张图片,然后显示出来。代码如下:


#include<opencv2/highgui/highgui.hpp>   //程序所需头文件
#include<opencv2/core/core.hpp>

using namespace cv;   //命名空间

int main()
{
	//载入图像
   Mat src = imread("E:/小路孩.jpg");
   //创建显示图片的窗口
   namedWindow("小路孩");
   //在窗口显示图片
   imshow("小路孩", src);
   //一直等待,直到有按键按下
   waitKey(0);

   return 0;
}

运行程序,得到如图:




大功告成生气,让我们一起开启OpenCV之旅~







猜你喜欢

转载自blog.csdn.net/lsq2902101015/article/details/47004175