人脸识别DEMO

package com.android.mydetect;


import android.app.Activity;
import android.widget.TextView;
import android.os.Bundle;
import android.media.FaceDetector;
import android.widget.ImageView;
import android.graphics.BitmapFactory;
import android.graphics.Bitmap;
import android.graphics.PointF;
import android.graphics.Matrix;
import android.util.Log;
import android.graphics.Canvas;
import android.graphics.Paint;


public class MyDetectActivity extends Activity {
private ImageView mImageView;
private Bitmap mBitmap;
private float mScale = 1F;


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mImageView = (ImageView) this.findViewById(R.id.image);
detect();
}


private void handleFace(FaceDetector.Face f) {
PointF midPoint = new PointF();
int r = ((int) (f.eyesDistance() * mScale * 1.5));
f.getMidPoint(midPoint);

midPoint.x *= mScale;
midPoint.y *= mScale;
Canvas c = new Canvas(mBitmap);
Paint p = new Paint();
p.setAntiAlias(true);
p.setAlpha(0x80);
c.drawCircle(midPoint.x, midPoint.y, r, p);
mImageView.setImageBitmap(mBitmap);
}


private void detect() {
Matrix matrix = new Matrix();
FaceDetector.Face[] mFaces = new FaceDetector.Face[3];
int mNumFaces = 0;


mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.baby);
if (mBitmap == null) {
return;
}
if (mBitmap.getWidth() > 256) {
mScale = 256.0F / mBitmap.getWidth();
}
matrix.setScale(mScale, mScale);
Bitmap faceBitmap = Bitmap.createBitmap(mBitmap, 0, 0, mBitmap
.getWidth(), mBitmap.getHeight(), matrix, true);


mScale = 1.0F / mScale;
if (faceBitmap != null) {
FaceDetector detector = new FaceDetector(faceBitmap.getWidth(),
faceBitmap.getHeight(), mFaces.length);
mNumFaces = detector.findFaces(faceBitmap, mFaces);

if (mNumFaces > 0) {
for (int i = 0; i < mNumFaces; i++) {
handleFace(mFaces[i]);
}
}
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值