关于OpenCV 3.1的搭建使用经验

 

        最近人脸识别的技术比较火。因为工做的须要,最近一段时间也在了解人脸识别方面的知识。git

        先介绍一下Face++,国内的Face++是人脸识别比较优秀的实例,有在线API和离线SDK提供,使用方式也比较简单,不过人脸库创建在Face++的服务器中,我的版免费,企业级收费。github

        基于数据信息的保密和二次开发的须要,我选择了使用OpenCV用做人脸识别开发,OpenCV是由C(C++)编写的开源的计算机视觉库。提供C++接口用于调用人脸识别、人脸验证等方法。因为配置比较复杂,官方说明不详尽,开发花了较多的时间,因此写下了这篇文章,一方面提供你们学习参考,一方面为本身总结整理。算法

        开发的环境为Win七、VS201五、OpenCV3.1(64位)。服务器

OpenCV:ide

        其中OpenCV 2.x和OpenCV 3.x版本有一个比较大的区别,OpenCV 3.x将人脸识别的部分功能(contrib)提取了出来。因此不建议在官网(http://opencv.org/)上直接下载opencv的exe执行文件来使用。须要正常使用人脸识别,除了下载opencv以外,还要下载opencv_contrib包。能够经过OpenCV的github网站(https://github.com/Itseez)来下载。学习

        下载完opencvopencv_contrib包后分别解压缩。再经过Cmake软件来对opencv进行搭建sln项目,搭建过程当中的指定路径指向opencv_contrib(即下图步骤3)。编译经过以后就会生成一个包含人脸识别功能的完成的OpenCV 3.1项目。而后在VS2015中新建该sln解决方案,编译后就可使用了。网站

        如下是CMake创建OpenCV 3.1项目的过程,1为opencv的路径,2为创建项目后生成的路径,填写路径后点击Configure,能够获得红色背景部分的内容,3为在OPENCV_EXTRA_MODULRS_PATH下填写opencv_contrib的modules目录路径,而后点击Generate便可生成解决方案。ui

OpenCV之人脸识别的使用 - alvinlovelife - 稻草人Alvin

        在VS2015中打开OpenCV3.1的.sln解决方案,在Debug模式下先从新生成解决方案,而后找到CMakeTargets中的install而后右键选择“Project Only”-->“Build Only INSTALL”。3d

        这个时候OpenCV3.1解决方案基本就完成不须要改动了,除非你要改原有的算法和实现。(这里的OpenCV 3.1项目是独立的,须要新建一个解决方案来调用它)code

        如今就能够开始新建本身的解决方案了,而后在本身的解决方案中,右键点击“属性”,配置相关属性就能够调用到OpenCV3.1的功能了。

OpenCV3.1之人脸识别的使用 - alvinlovelife - 稻草人Alvin

Include Directories:

    C:\opencv3.1\install\include\opencv;C:\opencv3.1\install\include\opencv2;C:\opencv3.1\install\include;

Library Directories:     C:\opencv3.1\install\x64\vc14\bin;C:\opencv3.1\install\x64\vc14\lib;C:\opencv3.1\install\x64\vc14\staticlib;

OpenCV3.1之人脸识别的使用 - alvinlovelife - 稻草人Alvin

Additional Dependencies:     opencv_aruco310d.lib;opencv_bgsegm310d.lib;opencv_bioinspired310d.lib;opencv_calib3d310d.lib;opencv_ccalib310d.lib;opencv_core310d.lib;opencv_datasets310d.lib;opencv_dnn310d.lib;opencv_dpm310d.lib;opencv_face310d.lib;opencv_features2d310d.lib;opencv_flann310d.lib;opencv_fuzzy310d.lib;opencv_highgui310d.lib;opencv_imgcodecs310d.lib;opencv_imgproc310d.lib;opencv_line_descriptor310d.lib;opencv_ml310d.lib;opencv_objdetect310d.lib;opencv_optflow310d.lib;opencv_photo310d.lib;opencv_plot310d.lib;opencv_reg310d.lib;opencv_rgbd310d.lib;opencv_saliency310d.lib;opencv_shape310d.lib;opencv_stereo310d.lib;opencv_stitching310d.lib;opencv_structured_light310d.lib;opencv_superres310d.lib;opencv_surface_matching310d.lib;opencv_text310d.lib;opencv_tracking310d.lib;opencv_ts310d.lib;opencv_video310d.lib;opencv_videoio310d.lib;opencv_videostab310d.lib;opencv_xfeatures2d310d.lib;opencv_ximgproc310d.lib;opencv_xobjdetect310d.lib;opencv_xphoto310d.lib;ippicvmt.lib;

 

注意:

  一、OpenCV 2.x版本人脸识别须要导入的包为:#include "opencv2/contrib/contrib.hpp",在OpenCV3.1版本中不存在该包,应该导入包:#include "opencv2/face.hpp"

  二、C:/opencv3.1为我生成的解决方案目录,其中opencv3.1版本对应为vc14,opencv3.0版本为vc12

  三、生成解决方案和配置相关属性时,要注意有DebugRelease两种模式,建议两种都编译配置一次

 

 

        暂时就写这么多,还有一些实际调用了例子,等有空整理以后再分享,有问题的话能够交流。

相关文章
相关标签/搜索