一直想接触下人脸识别(不是核心算法,机器学习之类的,仅仅想玩玩),但是自己学的是java,人脸识别一般都是用c++、python那些去做的,java的官方API里并没有提供这种库。偶然查到Opencv可以做图形图像处理,还有人脸检测。于是开始入坑…
备注:以下步骤都是在window10下做的
Opencv官网
github上的Opencv源码库
github上Opencv-contrib库
github上的Opencv-3rdparty库
Opencv编译好的文件里并没有集成Eigen,但是4.5.4的官方文档里有对应的API,所以只能自己编译集成。
这里也说了,可以使用cmake的命令行或者cmake的客户端去编译,看到网上大部分人都是用客户端,自己也不是学c++(opencv是用c++写的),为了避免麻烦,那就跟随大众用客户端来编译吧,毕竟有坑可以防着。
步骤1 一去github把opencv和contrib的源码下载下来(版本要一致)
下载下来的源码解压找个地方放,同时再创建一个存放文件build之后存放的文件夹,我这里就创建了个build文件夹
二然后下载一个cmake:cmake官网,我用的是window环境,64位,小白式操作可以下载msi,跟着走就行
三下载Eigen的包(需要这个包我也是后面编译过程找不到Eigen才去下的,这里可以提前准备好)
Eigen官网
四还需要下载apache ant,用来将代码打包成jar包的
apache Ant官网
下载完之后需要解压,配置环境变量,新建一个变量:ANT_PATH,值:ant安装路径apache-ant-1.10.11,(这个的版本号也要按自己的改)
然后在PATH中添加一个值:%ANT_PATH%bin
测试ant是否安装成功:任意位置cmd,输入ant -version,有输出版本号就是安装成功。
五下载VS编译器,vs官网,下载社区版就行了
步骤2先编译安装Eigen,网上很多,我这里就不写了
参考以下文章:https://blog.csdn.net/OOFFrankDura/article/details/103586893
步骤3开始编译Opencv和Opencv-contrib
步骤跟Eigen的编译差不多,
- 第一个框是opencv的源码位置("不是contrib)
- 第二个是build之后存放的地方,也就是我前面新建的build文件夹
- 点击Configure
- 选择自己的vs编译器
- 选择x64,点击Finish,开始第一次configure
可能第一次configure之后,回出现一些类似上面这张图这样的红色警告信息,不要慌,这大概率是网络不好(有些文件的下载需要科学上网)拉不下来文件,他这里提示我们去看build文件夹下的open/CMakeDownloadLog.txt文件,这里包含了一些构建过程,下载文件的日志大概张下面这样(不过我这里好像是下载成功的了)
大概就长这样
下载地址:https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_bgm_hd.i
文件下载后保存下来的地址:E:/myopencv/build/downloads/xfeatures2d
因为是文件没下载下来,所以我们需要去每个下载失败的下载地址,把文件下载下来,直接复制下载地址,粘贴到浏览器即可(大概率是需要科学上网),下载下来之后保存到文件下载地址,如果没有对应文件夹,自己创建一个,把下载好的文件复制进去即可。
如果这里是红色的,一定要configure到全白为止。
步骤5配置apache ant和Eigen
在查找这里搜索ant和eigen,EIGEN_INCLUDE_PATH是eigen3build之后的路径
注意:这个地址一定要填到eigen3,因为后面构建的时候,引入的c++头文件是#include
ANT这个只要前面的步骤中有配好ant,这里就会自己填上(但是我遇到了一个坑,就是我已经配置好了Ant,但是这里一直都找不到),就很奇怪。搞了一会之后发现,cmake有个Environment的按钮,点开一看,额,全都是我配置的环境变量,找了一下发现,并没有找到我配置的ANT_PATH,怀疑是缓存的原因,所以就把CMake重启了下,但是问题依然没有解决,干脆重启电脑,bug居然好了。。。
步骤6上面的步骤都成功之后,点击gengrate生成代码。
步骤7生成成功之后,找到我们自己创建的build目录,找到OpenCV.sln,右键用VS编译器打开,菜单栏—>生成----->批生成----->ALL BUILD两个选项都勾上,
INSTALL两个选项都勾上,生成,等待…最后生成的东西在build/install下。
单栏—>生成----->批生成----->ALL BUILD两个选项都勾上,
INSTALL两个选项都勾上,生成,等待…最后生成的东西在build/install下。
未完待续…



