【OpenCV人脸识别入门教程之三】CMake编译OpenCV源码
2015-11-08 11:40
585 查看
本文主要内容包括CMake的简介、使用CMake工具在Winsdows系统下编译OpenCV工程以及源码赏析。得到源代码工程后,即可自行修改,并编译后为自己所用。
系统:Windows7;CMake版本3.3.2;OpenCV版本:2.4.10.
CMake官网下载地址:https://cmake.org/download/,最新版本已更新到3.4.0。在下载页面中,在Source disrtibutions处可以下载CMake的源码:
在Binary distributions处可以下载其执行文件,这里我们选择Windows(Win32 Installer)下载,如下图:
点击其后对应的链接进行下载,并安装。安装完成后,在菜单中找到CMake,点击运行,图形界面如下:
将弹出下图所示的窗口,红色方框内的内容即需要根据自己的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”提示语句,可以发现,之前的红色提醒,已经消失,配置完成。
看到下图中的“Generating done”,即大功告成:
打开指定的解决方案生成的路径,可以看到生成成功的解决方案:
好啦 ,下面让我们马不停蹄的来编译解决方案吧,由于解决方案项目很多,需要静静等待几分钟后,,,,,
编译完成后,可以在工程目录的“./bin/Debug”文件夹里找到编译生成的链接库:
最后插一句,生成的解决方案里的头文件和源代码都是OpenCV里sources里的文件,如进行修改,sources里的文件也将被修改。
如下图即是Eigenfaces、Fisherfaces和LBPH人脸识别的源代码,展开函数即可看到源代码:
Eigenfaces人脸识别函数:
Fisherfaces人脸识别函数:
LBPH人脸识别主要函数:
通过阅读源代码,可以更好的开发人脸识别程序,好啦,本文结束,附博主在大理拍的照片一张:):
系统: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.htmlCMake官网下载地址: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人脸识别主要函数:
通过阅读源代码,可以更好的开发人脸识别程序,好啦,本文结束,附博主在大理拍的照片一张:):
相关文章推荐
- Linux 搭建svn服务器
- Hive入门学习之二:Hive 的部署
- Windows系统调用架构分析—也谈KiFastCallEntry函数地址的获取 + 一个hook的实现
- Hive入门学习之一:Hive的简述与架构
- 关于linux 内存分配【zz】
- 修复ShopNC使用QQ 互联时提示100010 错误
- SNMP监控一些常用OID的总结
- mac osx使用80端口(使用nginx解决)
- 虚拟机中伪分布式Hadoop的部署
- Openstack Murano(kilo)二次开发之添加Volume
- Linux 学习(3)-- kernel版本号的修改
- 拥抱开源——Linux C/C++程序员必须熟悉的开源项目
- Apache CloudStack 4.5.2 新特性一览
- CentOS各版本下载地址
- 门诊医生工作站处方类型的修改-----运维日志3
- org.openqa.selenium.remote.SessionNotFoundException: Unexpected error launch IE
- 聪哥跟你说linux命令
- HDFS用户权限管理
- linux命令-分区表fstab
- 写给Linux内核新手-关于Linux内核学习的误区