设为首页 加入收藏

TOP

Android人脸检测类FaceDetector
2014-11-24 11:28:00 来源: 作者: 【 】 浏览:0
Tags:Android 人脸 检测 FaceDetector

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);


}


}


}


}


Android人脸检测类FaceDetector


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android界面刷新实现 下一篇jQuery中Ajax表单处理遇到无响应..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C 内存管理 | 菜鸟教 (2025-12-26 20:20:37)
·如何在 C 语言函数中 (2025-12-26 20:20:34)
·国际音标 [ç] (2025-12-26 20:20:31)
·微服务 Spring Boot (2025-12-26 18:20:10)
·如何调整 Redis 内存 (2025-12-26 18:20:07)