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

照相时,在预览画面上提示用户人脸的位置,并完成自动对焦等,是个错的应用; 下面是实现细节

我们知道在android的代码中已有人脸识别的底层算法代码,而且在framework层也封了调用的API函数

extern/neven 目录下是实现人脸识别的算法代码。

添加获取照相时预览图片数据,可以在onPreviewFrame回调函数中得。在开始预览的地方,用mCameraDevice.setPreviewCallback(mPreviewCallback);设置预览回调函数。

import android.media.FaceDetector;

import android.media.FaceDetector.Face;

//Harrison add

private void DrawRectOnFace() {

if (numberOfFaceDetected != 0) {

Face mFace1 = mFace[0];

PointF midPoint = new PointF();

mFace1.getMidPoint(midPoint);

if ((Math.abs(mPreMidPoint.x-midPoint.x) < 50) && (Math.abs(mPreMidPoint.y-midPoint.y) < 50)) {

Log.i("Harrison", "not draw Rect .");

return ;

}

mPreMidPoint.x = midPoint.x;

mPreMidPoint.y = midPoint.y;

mFindFaceView.setVisibility(View.VISIBLE);

} else {

mPreMidPoint.x = 0;

mPreMidPoint.y = 0;

mFindFaceView.clearDraw();

mFindFaceView.setVisibility(View.GONE);

return;

}

mFindFaceView.drawRects(mFace, numberOfFaceDetected);

}

//调用API找人脸,需要import进软件包哦!

private void FindFacesInBitmap(Bitmap myBitmap) {

imageWidth = myBitmap.getWidth();

imageHeight = myBitmap.getHeight();

Log.i("Harrison", "imageWidth="+imageWidth+",  imageHeight="+imageHeight);

mFace = new FaceDetector.Face[numberOfFace];

mFaceDetect = new FaceDetector(imageWidth, imageHeight, numberOfFace);

numberOfFaceDetected = mFaceDetect.findFaces(myBitmap, mFace);

Log.i("Harrison", "numberOfFaceDetected="+numberOfFaceDetected);

}

private Bitmap rotateMyBitmap(Bitmap bitmap) {

int width = bitmap.getWidth();

int height = bitmap.getHeight();

Matrix matrix = new Matrix();

matrix.postRotate(90); //椤烘椂閽熸棆杞?0搴︺€?

Bitmap rotateBitmap = Bitmap.createBitmap(bitmap, 0,

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值