您的位置:首页 > 运维架构

【OpenCV人脸识别入门教程之三】CMake编译OpenCV源码

2015-11-08 11:40 585 查看
本文主要内容包括CMake的简介、使用CMake工具在Winsdows系统下编译OpenCV工程以及源码赏析。得到源代码工程后,即可自行修改,并编译后为自己所用。

系统:Windows7;CMake版本3.3.2;OpenCV版本:2.4.10.

一、CMake编译工具

CMake是一个跨平台的编译工具,可以用简单的语句来描述所有平台的编译过程。它能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。“CMake”是“cross platform make”的缩写,是个非常有用的工具,在使用OpenCV等开源工具时,在目录里随处可见CMakeLists.txt文件,其即是CMake的构建工程环境的重要文件。了解和使用CMake,对使用开源工具包是非常有帮助的。这里不讲如何编写CMakeLists.txt文件来构建编译环境,感兴趣的童鞋,请点:http://www.cnblogs.com/lidabo/category/613088.html

CMake官网下载地址:https://cmake.org/download/,最新版本已更新到3.4.0。在下载页面中,在Source disrtibutions处可以下载CMake的源码:



在Binary distributions处可以下载其执行文件,这里我们选择Windows(Win32 Installer)下载,如下图:



点击其后对应的链接进行下载,并安装。安装完成后,在菜单中找到CMake,点击运行,图形界面如下:



二、使用CMake编译OpenCV

1、运行CMake

在菜单栏中找到CMake点击运行,如上图所示。



2、设置OpenCV源码路径

点击下图红色方框中的按钮“Browse Source”,在弹出的窗口中选择自己电脑上OpenCV源码的存放路径,即OpenCV目录下的sources文件目录,细心的同学可以发现,在OpenCV源码的存储路径下,有一个CMakeLists.txt文件,即是CMake的编译环境配置文件,通过不同的编译器(如VS),CMake即可生成对应的解决方案工程文件。



3、指定生成OpenCV工程存放路径

如下图所示,点击红色方框中的按钮“Browse Build”,指定生成的OpenCV工程的存放位置,根据自己的需要指定路径:



4、Configure源代码

点击下图中红色方框里的按钮“Configure”:



将弹出下图所示的窗口,红色方框内的内容即需要根据自己的VS版本和编译器平台来选择合适的编译器:





注意:上图中的下拉菜单中,即让我们选择VS的版本和编译器平台。博主电脑上安装的是VS2012(Visual Studio 11),所以选择Visual Studio 11 2012。可以看到相同的版本下有三个不同的编译平台,空白代表Win32,ARM代表ARM平台,Win64代表64位平台,根据自己的需要进行选择。这里我们选择Win32平台进行编译。

选择好编译器版本和平台后,点击右下方“Finish”按钮开始配置。

完成后,会出现下图中红色方框内的提示语句,“Configuring done”:





但是,界面的上方出现了红色警告提示:



注意看下图中蓝色方框里的提示:"Press Configure to update and display new values in red, then press Generate to generate selected build files.",原来是让 我们再点击一次Configure来更新红色色块中的值,然后点击Generate即可生成我们需要的解决方案工程文件。

再次点击Configure按钮:



再一次出现“Configuring done”提示语句,可以发现,之前的红色提醒,已经消失,配置完成。

5、生成OpenCV解决方案工程

最后,只需要最后一步,点击生成按钮即可生成最终的OpenCV解决方案工程,如下图中点击“Generate”按钮:



看到下图中的“Generating done”,即大功告成:



打开指定的解决方案生成的路径,可以看到生成成功的解决方案:



三、重新编译OpenCV工程

让我们怀着激动的心情打开OpenCV解决方案,哇,可以看到解决方案共包含了69个项目:



好啦 ,下面让我们马不停蹄的来编译解决方案吧,由于解决方案项目很多,需要静静等待几分钟后,,,,,

编译完成后,可以在工程目录的“./bin/Debug”文件夹里找到编译生成的链接库:



最后插一句,生成的解决方案里的头文件和源代码都是OpenCV里sources里的文件,如进行修改,sources里的文件也将被修改。

四、OpenCV人脸识别源码

下面,让我们来找到OpenCV中实现人脸识别的代码,如下图操作,打开"facerec.cpp"文件,即可看到源代码:



如下图即是Eigenfaces、Fisherfaces和LBPH人脸识别的源代码,展开函数即可看到源代码:

Eigenfaces人脸识别函数:



Fisherfaces人脸识别函数:



LBPH人脸识别主要函数:



通过阅读源代码,可以更好的开发人脸识别程序,好啦,本文结束,附博主在大理拍的照片一张:):

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: