想在Android手机上实现人脸检测,因而搭建一个OpenCV4Android的环境。具体参考以下网址:http://my.eoe.cn/sandking/archive/2999.html ,http://www.360doc.com/content/13/1103/10/14479769_326248493.shtml html
第二个网址中主要参考cygwin须要下载的软件。 java
在搭建好环境后,发现OpenCV4Android自带face detection例子,运行了一下发现。。。。居然检测不到人脸。把lbpcascade_frontalface.xml文件换成了haarcascade_frontalface_alt_tree.xml依然检测不到,好奇怪。只有我遇到这个问题了吗?? eclipse
另外这个例子有java和native(JNI)两种实现方式,其中java好慢好卡(用了haar那个XML文件),native的速度还不错,这是不得不学JNI的节奏了。 学习
学习例子里的JNI程序源码发现,好像没有用CascadeClassifier(实际是使用了detection_based_tracker,一个封装过的CascadeClassifier,这里是后来学习中发现原来理解错误的修改),因而就想着本身来实现一个JNI的CascadeClassifier(修改加工源代码=,=)。 .net
对在eclipse里JNI有关操做参考http://blog.csdn.net/lhq186/article/details/18499653 。(好吧,这个网址前面的前两个网页差很少感受,可是后面的内容仍是有用的。) xml
我所遇到的问题是在cmd进入 项目/bin/classes路径下使用 javah -jni com.xxx.xxx.ImageProcess时报错 错误:找不到类org.opencv.core.Mat 。这是我在ImageProcess.java中import了这个类。解决方法为:把OpenCv的sdk\java\bin\classes路径添加到系统环境变量CLASSPATH里。 htm
在编辑.cpp文件时存在#include<string>和#include<vector>unresolved的问题,把face detection例子项目的property->C/C++General->Paths and Symbols的Includes照抄一遍就OK~ blog
目前先写到这里,边学边记录吧。 ip
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 get
最终,我找到了face detection例子检测不到人脸的缘由,原来手机要横着拿!!!!!