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

本文主要是介绍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

这篇关于android开发camera自动人脸,Android camera实时预览 实时处理,人脸识别示例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/491885

相关文章

HTML5的input标签的`type`属性值详解和代码示例

《HTML5的input标签的`type`属性值详解和代码示例》HTML5的`input`标签提供了多种`type`属性值,用于创建不同类型的输入控件,满足用户输入的多样化需求,从文本输入、密码输入、... 目录一、引言二、文本类输入类型2.1 text2.2 password2.3 textarea(严格

Agent开发核心技术解析以及现代Agent架构设计

《Agent开发核心技术解析以及现代Agent架构设计》在人工智能领域,Agent并非一个全新的概念,但在大模型时代,它被赋予了全新的生命力,简单来说,Agent是一个能够自主感知环境、理解任务、制定... 目录一、回归本源:到底什么是Agent?二、核心链路拆解:Agent的"大脑"与"四肢"1. 规划模

MySQL中between and的基本用法、范围查询示例详解

《MySQL中betweenand的基本用法、范围查询示例详解》BETWEENAND操作符在MySQL中用于选择在两个值之间的数据,包括边界值,它支持数值和日期类型,示例展示了如何使用BETWEEN... 目录一、between and语法二、使用示例2.1、betwphpeen and数值查询2.2、be

python中的flask_sqlalchemy的使用及示例详解

《python中的flask_sqlalchemy的使用及示例详解》文章主要介绍了在使用SQLAlchemy创建模型实例时,通过元类动态创建实例的方式,并说明了如何在实例化时执行__init__方法,... 目录@orm.reconstructorSQLAlchemy的回滚关联其他模型数据库基本操作将数据添

Java数组动态扩容的实现示例

《Java数组动态扩容的实现示例》本文主要介绍了Java数组动态扩容的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1 问题2 方法3 结语1 问题实现动态的给数组添加元素效果,实现对数组扩容,原始数组使用静态分配

JAVA项目swing转javafx语法规则以及示例代码

《JAVA项目swing转javafx语法规则以及示例代码》:本文主要介绍JAVA项目swing转javafx语法规则以及示例代码的相关资料,文中详细讲解了主类继承、窗口创建、布局管理、控件替换、... 目录最常用的“一行换一行”速查表(直接全局替换)实际转换示例(JFramejs → JavaFX)迁移建

Android使用java实现网络连通性检查详解

《Android使用java实现网络连通性检查详解》这篇文章主要为大家详细介绍了Android使用java实现网络连通性检查的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录NetCheck.Java(可直接拷贝)使用示例(Activity/Fragment 内)权限要求

MyBatis中的两种参数传递类型详解(示例代码)

《MyBatis中的两种参数传递类型详解(示例代码)》文章介绍了MyBatis中传递多个参数的两种方式,使用Map和使用@Param注解或封装POJO,Map方式适用于动态、不固定的参数,但可读性和安... 目录✅ android方式一:使用Map<String, Object>✅ 方式二:使用@Param

SpringBoot实现图形验证码的示例代码

《SpringBoot实现图形验证码的示例代码》验证码的实现方式有很多,可以由前端实现,也可以由后端进行实现,也有很多的插件和工具包可以使用,在这里,我们使用Hutool提供的小工具实现,本文介绍Sp... 目录项目创建前端代码实现约定前后端交互接口需求分析接口定义Hutool工具实现服务器端代码引入依赖获

C#中DateTime的格式符的实现示例

《C#中DateTime的格式符的实现示例》本文介绍了C#中DateTime格式符的使用方法,分为预定义格式和自定义格式两类,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值... 目录DateTime的格式符1.核心概念2.预定义格式(快捷方案,直接复用)3.自定义格式(灵活可控