android开发camera自动人脸,Android camera实时预览 实时处理,人脸识别示例

Android camera实时预览 实时处理,面部认证。

预览操作是网友共享的代码,我在继承SurfaceView 的CameraSurfaceView 中加入了帧监听事件,每次预览监听前五个数据帧,在处理做一个面部识别。

先看目录关系

15059063781.jpg?2017021103117

自定义控件CameraSurfaceView.java

自定义接口方法CameraInterface.java

CameraActivity预览界面。

CameraSurfaceView.Java

package com.centaur.camera.preview;

import android.content.Context;

import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

import android.graphics.ImageFormat;

import android.graphics.Matrix;

import android.graphics.PixelFormat;

import android.graphics.Rect;

import android.graphics.YuvImage;

import android.hardware.Camera;

import android.util.AttributeSet;

import android.util.Log;

import android.view.SurfaceHolder;

import android.view.SurfaceView;

import com.centaur.camera.camera.CameraInterface;

import java.io.ByteArrayOutputStream;

/**

* Created by Tianchaoxiong on 2017/1/16.

*/

public class CameraSurfaceView extends SurfaceView implements SurfaceHolder.Callback,Camera.PreviewCallback{

private static final int FACENUM = 5;

private static final String TAG = "yanzi";

CameraInterface mCameraInterface;

Context mContext;

SurfaceHolder mSurfaceHolder;

private boolean isFinish;

//传输五个bitmap数组

Bitmap [] bitmaps = new Bitmap[5];

int number = 0;//作为计数器用

OnFaceCollectListener onFaceCollectListener = null;

public CameraSurfaceView(Context context,AttributeSet attrs) {

super(context,attrs);

mContext = context;

mSurfaceHolder = getHolder();

mSurfaceHolder.setFormat(PixelFormat.TRANSPARENT);//translucent半透明 transparent透明

mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

mSurfaceHolder.addCallback(this);

}

@Override

public void surfaceCreated(SurfaceHolder surfaceHolder) {

Log.i(TAG,"surfaceCreated...");

}

@Override

public void surfaceChanged(SurfaceHolder surfaceHolder,int i,int i1,int i2) {

Log.i(TAG,"surfaceChanged...");

}

@Override

public void surfaceDestroyed(SurfaceHolder surfaceHolder) {

Log.i(TAG,"surfaceDestroyed...");

CameraInterface.getInstance().doStopCamera();

}

public SurfaceHolder getSurfaceHolder(){

return mSurfaceHolder;

}

/**

* 收集五张图片 监听器

*/

public static interface OnFaceCollectListener {

/**

* 收集五张face

* @param bitmaps 返回的五张脸的数组

*/

void OnFaceCollected(Bitmap[] bitmaps);

/**

* face重新绘制

* @param isStart 是否重新收集

*/

void OnFaceCollectStart(boolean isStart);

}

/**

* 设置面部的监听器

* @param onFaceCollectListener

*/

public void setOnFaceCollectListener(OnFaceCollectListener onFaceCollectListener){

if(onFaceCollectListener!=null){

this.onFaceCollectListener = onFaceCollectListener;

}

}

/***

* 想在这里做一个监听处理 收五侦 传输出去

* @param b

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值