根据文档描述,输入图片必须为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相关推荐

  1. android 人脸检测 对焦,Android API教程:人脸检测(上)

    通过两个主要的API,Android提供了一个直接在位图上进行脸部检测的方法,这两个API分别是    android.media.FaceDetector和android.media.FaceDet ...

  2. android 人脸检测_Android人脸检测

    android 人脸检测 With the release of Google Play services 7.8, Google has brought in the Mobile Vision A ...

  3. 深度学习自学(六):Android人脸检测环境配置等相关问题

    Android人脸检测环境配置等相关问题 1.android studio 包查找不到 2.android studio 快捷键 搜索类的快捷键是Ctrl+N,搜索以后点击结果,可以跳到相应类的文件. ...

  4. 安卓人脸检测之FaceDetector

    最近看到一个APP的头像上传时,如果你设置的图片里面没有人脸,或者有两张以及以上人脸的时候,会提示你图片不符合规范,让你重新设置,这样是为了确保用户的头像是人! 然后我就在网上查看了一下资料,发现谷歌 ...

  5. android 人脸检测

    概述 Android SDK 中的 FaceDetector 介绍 人脸检测核心代码 FaceDetector性能 FaceDetector 的不足 概述 人脸检测是指从一副图片或者一帧视频中检测是否 ...

  6. Android人脸检测方案汇总

    因为要用到Android本地相机人脸检测,检测到人脸再做进一步处理.这里只记录从相机中实时检测人脸功能.本文只是一个简单的汇总. 1. Android原生FaceDetectionListener 部 ...

  7. android人脸检测开发——使用GMV API(google mobile vision library)开发人脸检测功能

    授人以鱼不如授人以渔:建议看以下官网资料! 从一张图片中检测人脸及脸部器官的教程:https://developers.google.cn/vision/android/detect-faces-tu ...

  8. android 人脸检测 facedec,智能访客系统中的人脸检测及方向判别算法.pdf

    智能访客系统中的人脸检测及方向判别算法,人脸识别算法,人脸检测算法,opencv人脸识别算法,人脸识别算法有哪些,人脸识别pca算法,人脸比对算法,android人脸识别算法,adaboost人脸检测 ...

  9. android 人脸检测代码,在Android实现人脸识别的详细过程

    照相时,在预览画面上提示用户人脸的位置,并完成自动对焦等,是个错的应用; 下面是实现细节 我们知道在android的代码中已有人脸识别的底层算法代码,而且在framework层也封了调用的API函数 ...

最新文章

  1. 算法——计算的灵魂(《算法》一本写了近40年的书)
  2. 30岁的她决定回国做AI芯片
  3. 洛谷 P2867 [USACO06NOV]大广场Big Square
  4. C++ Opengl 线,网格游戏源码
  5. C++ 序列化 serialization 如何将类持久化?
  6. PWA(Progressive Web App)入门系列:(三)PWA关键技术Manifest
  7. php工程导致系统蓝屏,经常蓝屏是什么原因
  8. Elasticsearch集群监控工具bigdesk插件安装
  9. NLP硬核入门-PointerNet和CopyNet
  10. 【专家专栏】浅谈百度搜索排序
  11. 方法、脚本-Pig Grunt之简单命令及实例说明-by小雨
  12. uni-app(vue小程序)学习笔记
  13. Safari兼容IE
  14. 大上显示器,你的护眼利器
  15. Java对文件/文件夹进行压缩或解压缩
  16. 压力单位PSI,PSIG, PSIA的区别
  17. python 开任意数的平方
  18. csdn WLW 文件验证
  19. 一种RC滤波电路的验证
  20. 模组对地短路的分析与源头巡查

热门文章

  1. 春节前后,太原将举办多种展览演出
  2. ASP.NET 5系列教程
  3. Tomcat架构探究
  4. pl/sql developer安装配置
  5. poj1005——I Think I Need a Houseboat
  6. 百度08年网页搜索份额73.2% 创历史新高
  7. Linux操作系统的密码破解大全
  8. 分层结构的生活例子_详解软件分层架构设计、工作原理、实例以及具体架构
  9. Python编程基础 - 使用临时文件和临时目录
  10. gdt描述_GDT全局描述符表