android opencv 简单的人脸识别
2017-10-11 16:43
453 查看
很简单的人脸识别功能,识别人脸后用矩形圈出来
实现人脸识别需要模型文件,opencv再带的模型文件在OpenCV-android-sdk\sdk\etc内
我使用haarcascade_frontalface_alt.xml来做人脸识别
把haarcascade_frontalface_alt.xml文件拉到项目raw文件夹,没有创建一个
初始化
在onCameraFrame函数内实现
onCameraFrame函数在前面文章有用到,但这样写会很卡,可以用多线程,一个线程渲染,一个线程后台人脸识别,返回结果画出来,可能会有一定的延迟,但总比卡顿好
实现人脸识别需要模型文件,opencv再带的模型文件在OpenCV-android-sdk\sdk\etc内
我使用haarcascade_frontalface_alt.xml来做人脸识别
把haarcascade_frontalface_alt.xml文件拉到项目raw文件夹,没有创建一个
初始化
InputStream is = getResources().openRawResource(R.raw.haarcascade_frontalface_alt); File cascadeDir = getDir("cascade", Context.MODE_PRIVATE); File mCascadeFile = new File(cascadeDir, "haarcascade_frontalface_alt.xml"); try { FileOutputStream os = new FileOutputStream(mCascadeFile); byte[] buffer = new byte[4096]; int bytesRead; while ((bytesRead = is.read(buffer)) != -1) { os.write(buffer, 0, bytesRead); } is.close(); os.close(); } catch (IOException e) { e.printStackTrace(); } cascadeDir.delete(); cascadeClassifier = new CascadeClassifier(mCascadeFile.getAbsolutePath());
在onCameraFrame函数内实现
MatOfRect faces = new MatOfRect(); if (cascadeClassifier != null) { cascadeClassifier.detectMultiScale(g, faces, 1.1, 1, 1, new Size(absoluteFaceSize, absoluteFaceSize), new Size()); } // 检测出多少个人脸 Rect[] facesArray = faces.toArray(); for (int i = 0; i < facesArray.length; i++) { Imgproc.rectangle(r, facesArray[i].tl(), facesArray[i].br(), new Scalar(0, 255, 0, 255), 3); } return r;
onCameraFrame函数在前面文章有用到,但这样写会很卡,可以用多线程,一个线程渲染,一个线程后台人脸识别,返回结果画出来,可能会有一定的延迟,但总比卡顿好
相关文章推荐
- android 结合 opencv项目(NDK、OpenCV、android,官方Demo人脸识别)
- (opencv)Android人脸识别
- OpenCV-2.4.6-android-sdk 人脸识别demo搭建
- 图像识别 python+opencv的简单人脸识别
- OpenCV学习:人脸识别 简单程序
- Python + OpenCV 实现简单的人脸识别
- android OpenCV研究之动态人脸识别
- 利用opencv实现简单的人脸识别
- iOS集成OpenCV、灰度相机并颜色反转、简单人脸识别
- Android OpenCV 人脸识别 Opencv3.1
- OpenCV + MFC 实现简单人脸识别
- Android中 人脸识别FaceDetector简单实例
- Android 人脸识别+人脸匹配(OpenCV+JavaCV)
- OpenCV4Android调试人脸识别sample时遇到的问题和解决办法
- 关于iOS与android中简单的人脸识别(判断是否有人脸)
- python+opencv实现的简单人脸识别代码示例
- android jni中将大数据回调到java层的时候用法,比如视频流,音频流等,图片流等 比如我用ffmpeg解码好视频流,想送到java层使用opengGL进行显示,opencv进行人脸识别等等
- Opencv3.3 人脸识别 图片拼接 Android
- 简单OPENCV人脸检测识别原理
- OpenCV-2.4.6-android-sdk 人脸识别demo搭建