最近在学习opencv,其中用到了人脸识别模块,那这个就要用到opencv中的face人脸识别的那部分功能,当在VS 2017中添加 #include <opencv2/face.hpp> 时发现不对啊(我的是opencv3.3.0),下面有红色波浪线,其原因是opencv3.3.0本身并不带这个模块,为什么不带这个模块,看到有些人说是这部分功能更新比较快,因此放在了另外的地方供我们下载,这个地方就是github。在opencv官网网页的下边可以直接点击github进入(链接是https://github.com/opencv),这些模块一般在opencv_contirb得modules中。那怎么把这些模块加载进operncv中加以利用呢?这时就需要自己利用cmake结合原有的opencv3.3.0中的source文件,进行重新的编译生成一个全新的带有face人脸识别功能的库。
由于之前从来没有接触过cmake,并不清楚怎么用,所以上网搜集了几个利用cmake对opencv进行扩展模块编译的教程,但是按照这些教程基本上都出现了问题,主要是这些教程有些细节没有讲,最后自己结合多个教程,琢磨一下,发现原来是版本的问题(后面才发现,原来opencv_contrib也有不同的版本,笨啊)。本文主要是告诉大家编译过程中应该注意的一些地方,在写之前先贴几个网址,这些网址就是主要的安装编译教程,大家可以参考,也是我之前编译过程中参考过的:
1. http://www.cnblogs.com/jliangqiu2016/p/5597501.html 在该篇文章中,并没有说opencv_contirb一定要与自己已有的opencv版本保持一致,结果因为这个版本的问题我搞了差不多一天。
2. https://github.com/opencv/opencv_contrib 这个就是 opencv_contirb 在github上的网址,其实该模块中的README.md也给出了利用cmake安装的步骤,但是也没有提到版本问题(可能是我太菜,不知道这些东西都一定要保证相同的版本)。
3. https://www.learnopencv.com/install-opencv3-on-windows/ 这个是我最后找到的安装教程,对比发现,这个教程讲的很详细,这个教程里面讲到了版本的问题,基本上按照这个都不会出现什么问题了。
4. https://cmake.org/download/ 这是Cmake 软件下载的官网,官网的下载速度让我崩溃,CSDN上到是有好多可以下载这个工具的,但都需要金币。我花钱下载了一个,如果有需要的,可以发我邮箱(caizhengye123@126.com),免费发给你们。
下面写一下在编译过程中应该注意的两个地方:
1. 利用cmake第一次进行configure时虽然下面显示是configure Done,但是上面还是会有一堆红色,因此这里我们要再点击一次configure,变成白色后才可以。
2. 就是版本问题,自己的opencv版本一定要和opencv_contirb的版本一致,具体可以参考上面第3个网址中的教程。