Android人脸检测类FaceDetector
根据文档描述,输入图片必须为Bitmap RGB565格式。
人脸的检测方法是用双眼来检测人脸的位置,也就是说无法检测到嘴、侧脸等,双眼必须同时可见,并且眼镜会影响检测的效果。
实际上,FaceDetector检测到的并不是人的全脸,而只是双眼。
实际测试中,发现图片太小的话检测不到人脸,试验中使用小于100x100的图片检测不到人脸,但是由于Android内存有限,图片太大的话,会出现无法加载图片的异常。
检测到的人脸存放到FaceDetector.Face类中,该类无法再扩展。从该类可以获取到人眼的中心位置和双眼之间的具体。
package name.feisky.face;
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.PointF;
import android.media.FaceDetector;
import android.media.FaceDetector.Face;
import android.os.Bundle;
import android.view.View;
public class AndroidFaceDetector extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new myView(this));
}
private class myView extends View{
private int imageWidth, imageHeight;
private int numberOfFace = 5;
private FaceDetector myFaceDetect;
private FaceDetector.Face[] myFace;
float myEyesDistance;
int numberOfFaceDetected;
Bitmap myBitmap;
public myView(Context context) {
super(context);
BitmapFactory.Options BitmapFactoryOptionsbfo = new BitmapFactory.Options();
BitmapFactoryOptionsbfo.inPreferredConfig = Bitmap.Config.RGB_565;
myBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pp, BitmapFactoryOptionsbfo);
imageWidth = myBitmap.getWidth();
imageHeight = myBitmap.getHeight();
myFace = new FaceDetector.Face[numberOfFace];
myFaceDetect = new FaceDetector(imageWidth, imageHeight, numberOfFace);
numberOfFaceDetected = myFaceDetect.findFaces(myBitmap, myFace);
}
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
canvas.drawBitmap(myBitmap, 0, 0, null);
Paint myPaint = new Paint();
myPaint.setColor(Color.GREEN);
myPaint.setStyle(Paint.Style.STROKE);
myPaint.setStrokeWidth(3);
for(int i=0; i < numberOfFaceDetected; i++)
{
Face face = myFace[i];
PointF myMidPoint = new PointF();
face.getMidPoint(myMidPoint);
myEyesDistance = face.eyesDistance();
canvas.drawRect(
(int)(myMidPoint.x - myEyesDistance),
(int)(myMidPoint.y - myEyesDistance),
(int)(myMidPoint.x + myEyesDistance),
(int)(myMidPoint.y + myEyesDistance),
myPaint);
}
}
}
}
本文转自feisky博客园博客,原文链接:http://www.cnblogs.com/feisky/archive/2010/09/12/1824320.html,如需转载请自行联系原作者
Android人脸检测类FaceDetector相关推荐
- android 人脸检测 对焦,Android API教程:人脸检测(上)
通过两个主要的API,Android提供了一个直接在位图上进行脸部检测的方法,这两个API分别是 android.media.FaceDetector和android.media.FaceDet ...
- android 人脸检测_Android人脸检测
android 人脸检测 With the release of Google Play services 7.8, Google has brought in the Mobile Vision A ...
- 深度学习自学(六):Android人脸检测环境配置等相关问题
Android人脸检测环境配置等相关问题 1.android studio 包查找不到 2.android studio 快捷键 搜索类的快捷键是Ctrl+N,搜索以后点击结果,可以跳到相应类的文件. ...
- 安卓人脸检测之FaceDetector
最近看到一个APP的头像上传时,如果你设置的图片里面没有人脸,或者有两张以及以上人脸的时候,会提示你图片不符合规范,让你重新设置,这样是为了确保用户的头像是人! 然后我就在网上查看了一下资料,发现谷歌 ...
- android 人脸检测
概述 Android SDK 中的 FaceDetector 介绍 人脸检测核心代码 FaceDetector性能 FaceDetector 的不足 概述 人脸检测是指从一副图片或者一帧视频中检测是否 ...
- Android人脸检测方案汇总
因为要用到Android本地相机人脸检测,检测到人脸再做进一步处理.这里只记录从相机中实时检测人脸功能.本文只是一个简单的汇总. 1. Android原生FaceDetectionListener 部 ...
- android人脸检测开发——使用GMV API(google mobile vision library)开发人脸检测功能
授人以鱼不如授人以渔:建议看以下官网资料! 从一张图片中检测人脸及脸部器官的教程:https://developers.google.cn/vision/android/detect-faces-tu ...
- android 人脸检测 facedec,智能访客系统中的人脸检测及方向判别算法.pdf
智能访客系统中的人脸检测及方向判别算法,人脸识别算法,人脸检测算法,opencv人脸识别算法,人脸识别算法有哪些,人脸识别pca算法,人脸比对算法,android人脸识别算法,adaboost人脸检测 ...
- android 人脸检测代码,在Android实现人脸识别的详细过程
照相时,在预览画面上提示用户人脸的位置,并完成自动对焦等,是个错的应用; 下面是实现细节 我们知道在android的代码中已有人脸识别的底层算法代码,而且在framework层也封了调用的API函数 ...
最新文章
- 算法——计算的灵魂(《算法》一本写了近40年的书)
- 30岁的她决定回国做AI芯片
- 洛谷 P2867 [USACO06NOV]大广场Big Square
- C++ Opengl 线,网格游戏源码
- C++ 序列化 serialization 如何将类持久化?
- PWA(Progressive Web App)入门系列:(三)PWA关键技术Manifest
- php工程导致系统蓝屏,经常蓝屏是什么原因
- Elasticsearch集群监控工具bigdesk插件安装
- NLP硬核入门-PointerNet和CopyNet
- 【专家专栏】浅谈百度搜索排序
- 方法、脚本-Pig Grunt之简单命令及实例说明-by小雨
- uni-app(vue小程序)学习笔记
- Safari兼容IE
- 大上显示器,你的护眼利器
- Java对文件/文件夹进行压缩或解压缩
- 压力单位PSI,PSIG, PSIA的区别
- python 开任意数的平方
- csdn WLW 文件验证
- 一种RC滤波电路的验证
- 模组对地短路的分析与源头巡查