一、OpenCV2.4简介 <参考链接: http://blog.csdn.net/yanzi1225627/article/details/16917961
http://www.cnblogs.com/linguanh/p/4624768.html>
初步认识: OpenCV 可以运行在Linux、Windows 和 Mac OS等多个操作系统
opencv4android 是为了安卓而存在的。
二: 配置opencv的两种方法
@Override
public void onResume() {
super.onResume();
//开启下面这行,就是采用OpenCV Manager,需要安装一个apk
//OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_3, this, mLoaderCallback);
//使用下面采用的是将native下的所有放进Libs里面
//此时app的build.gradle需要加入sourceSets {main { jniLibs.srcDirs = ['libs']}}
if (!OpenCVLoader.initDebug()) {
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_10, this, mLoaderCallback);
} else {
mLoaderCallback.onManagerConnected (LoaderCallbackInterface.SUCCESS);
}
}
-
将sdk的nitive打包进app的libs里面,但是动态库的存在,工程变得很大
-
引入了OpenCV Manager,其本质就是一个Service,用来管理OpenCV动态链接库。它工作在APP和OpenCV的动态链接库之间。OpenCV Manager的结构就是模仿Android的Binder机制
(这种方式太糟糕了,用户需要安装另一个apk)
三:难点
人脸检测、特征点定位归一化、人脸特征与识别模型,每一块都需要至少一个月时间,不熟悉的话,几个月也正常。
1、Face detection 人脸识别,即识别出这是人的脸,而不管他是谁的。
2、Face preprocessing 面部预处理,即提取出脸部图像。
3、Collect and learn faces 脸部的特征采集和学习
4、Face recognition 脸部识别,找出最相近的相近脸部图像。
四: 把握
-
Core类:对矩阵的进行基本运算(加减乘除等)的一些函数
OpenCV基本数据结构 动态数据结构 绘图函数 数组操作相关函数 辅助功能与系统函数和宏 与OpenGL的互操作
-
Mat类:
Bitmap和Mat互相转换:Utils.bitmapToMat Utils.matToBitmap
网友评论