Android camera实时预览 实时处理,面部认证。
预览操作是网友共享的代码,我在继承SurfaceView 的CameraSurfaceView 中加入了帧监听事件,每次预览监听前五个数据帧,在处理做一个面部识别。
先看目录关系
自定义控件CameraSurfaceView.java
自定义接口方法CameraInterface.java
CameraActivity预览界面。
CameraSurfaceView.Java
aur.camera.preview;
t.Context;
aphics.Bitmap;
aphics.BitmapFactory;
aphics.ImageFormat;
aphics.Matrix;
aphics.PixelFormat;
aphics.Rect;
aphics.YuvImage;
import android.hardware.Camera;
import android.util.AttributeSet;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
aur.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,"");
}
@Override
public void surfaceChanged(SurfaceHolder surfaceHolder,int i,int i1,int i2) {
Log.i(TAG,"");
}
@Override
public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
Log.i(TAG,"");
}
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){
}
}
/***
* 想在这里做一个监听处理 收五侦 传输出去
* @param b
本文发布于:2024-02-02 20:10:11,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170687581146155.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |