1、活体与照片。效果,捕获人脸

2、活体人脸识别:https://blog.csdn.net/meixi_android/article/details/88690445

运行效果:

自定义获取人脸view

/**

* 作者:created by meixi

* 邮箱:13164716840@163.com

* 日期:2018/8/29 15

*/

public class FaceOverlayView extends View {

private Paint mPaint;

private Paint mTextPaint;

private int mDisplayOrientation;

private int mOrientation;

private int previewWidth;

private int previewHeight;

private FaceResult[] mFaces;

private double fps;

private boolean isFront = false;

public FaceOverlayView(Context context) {

super(context);

initialize();

}

private void initialize() {

// We want a green box around the face:

DisplayMetrics metrics = getResources().getDisplayMetrics();

int stroke = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 2, metrics);

mPaint = new Paint();

mPaint.setAntiAlias(true);

mPaint.setDither(true);

mPaint.setColor(Color.GREEN);

mPaint.setStrokeWidth(stroke);

mPaint.setStyle(Paint.Style.STROKE);

mTextPaint = new Paint();

mTextPaint.setAntiAlias(true);

mTextPaint.setDither(true);

int size = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 15, metrics);

mTextPaint.setTextSize(size);

mTextPaint.setColor(Color.GREEN);

mTextPaint.setStyle(Paint.Style.FILL);

}

public void setFPS(double fps) {

this.fps = fps;

}

public void setFaces(FaceResult[] faces) {

mFaces = faces;

invalidate();

}

public void setOrientation(int orientation) {

mOrientation = orientation;

}

public void setDisplayOrientation(int displayOrientation) {

mDisplayOrientation = displayOrientation;

invalidate();

}

@Override

protected void onDraw(Canvas canvas) {

super.onDraw(canvas);

if (mFaces != null && mFaces.length > 0) {

float scaleX = (float) getWidth() / (float) previewWidth;

float scaleY = (float) getHeight() / (float) previewHeight;

switch (mDisplayOrientation) {

case 90:

case 270:

scaleX = (float) getWidth() / (float) previewHeight;

scaleY = (float) getHeight() / (float) previewWidth;

break;

}

canvas.save();

canvas.rotate(-mOrientation);

RectF rectF = new RectF();

for (FaceResult face : mFaces) {

PointF mid = new PointF();

face.getMidPoint(mid);

if (mid.x != 0.0f && mid.y != 0.0f) {

float eyesDis = face.eyesDistance();

rectF.set(new RectF(

(mid.x - eyesDis * 1.2f) * scaleX,

(mid.y - eyesDis * 0.65f) * scaleY,

(mid.x + eyesDis * 1.2f) * scaleX,

(mid.y + eyesDis * 1.75f) * scaleY));

if (isFront) {

float left = rectF.left;

float right = rectF.right;

rectF.left = getWidth() - right;

rectF.right = getWidth() - left;

}

canvas.drawRect(rectF, mPaint);

canvas.drawText("ID " + face.getId(), rectF.left, rectF.bottom + mTextPaint.getTextSize(), mTextPaint);

canvas.drawText("Confidence " + face.getConfidence(), rectF.left, rectF.bottom + mTextPaint.getTextSize() * 2, mTextPaint);

canvas.drawText("EyesDistance " + face.eyesDistance(), rectF.left, rectF.bottom + mTextPaint.getTextSize() * 3, mTextPaint);

}

}

canvas.restore();

}

DecimalFormat df2 = new DecimalFormat(".##");

canvas.drawText("Detected_Frame/s: " + df2.format(fps) + " @ " + previewWidth + "x" + previewHeight, mTextPaint.getTextSize(), mTextPaint.getTextSize(), mTextPaint);

}

public void setPreviewWidth(int previewWidth) {

this.previewWidth = previewWidth;

}

public void setPreviewHeight(int previewHeight) {

this.previewHeight = previewHeight;

}

public void setFront(boolean front) {

isFront = front;

}

}

附上demo下载地址:https://download.csdn.net/download/meixi_android/10796011

链接:https://pan.baidu.com/s/1lJG9S3BFH1GhXT9jypZh9w

密码:在线回复QQ1085220040

android拍照识别人脸,Android 人脸识别拍照demo相关推荐

  1. android人脸识别源代码,Android自带的人脸识别

    1.Android自带的人脸识别Android自带的人脸识别只能识别出人脸在画面中的位置,中点,眼间距,角度等基本特性,提供给拍照性质的应用使用.从基本功能中不能得出明显的特征数据 2.底层库支持ex ...

  2. 人脸识别考勤 Android 课程设计

    题目十二 如果点不了衔接,下面有文本 参考文挡百度人脸识别api https://ai.baidu.com/ai-doc/FACE/7k37c1twu 学长写的 https://blog.csdn.n ...

  3. android 动态人脸识别码,android OpenCV研究之动态人脸识别

    随着直播渐渐的火起来,像抱着直播大腿的其他功能也渐渐的火起来了,比如说人脸识别.说起人脸识别用处甚广,比如说有以这个功能为核心的app:美颜相机.美图秀秀.SNOW等等,但是美颜相机和美图秀秀是用的国 ...

  4. android 表情识别,基于Android平台的人脸表情识别系统的设计与实现

    摘要: 随着目前移动设备硬件技术的不断发展,其性能与PC的差距越来越小,这使得在嵌入式平台上进行图像处理成为了可能.目前使用最广泛的是基于Android系统的嵌入式平台,与之相关的图像类应用需求也渐渐 ...

  5. Android相机预览,指定区域显示预览框,在区域内出现人脸进行人脸识别,并抓拍人脸照片存在本地,CameraX,虹软人脸识别

    效果图: 第一种是使用camerax进行预览,android camerax预览官方文档,主要通过imageAnalysis,抓帧进行图片处理,然后通过android自带的图片人脸识别FaceDete ...

  6. Android Q 上的Biometric生物识别之Face人脸识别流程

    第一部分,人脸识别身份验证HIDL 借助人脸识别身份验证功能,用户只需要将自己的面孔对准设备即可将其解锁.Android 10 增加了对一种新的人脸识别身份验证堆栈的支持,这种堆栈可安全处理摄像头帧, ...

  7. 安信可ESP32-CAM摄像头开发demo--局域网拍照、实时视频、人脸识别

    ESP32-CAM内嵌网页局域网通信 目录 一.前言 二.环境搭建及编译 2.1 Linux环境安装 2.2 代码获取 2.3 编译工程 三.建立局域网 3.1 station 模式 3.2 AP模式 ...

  8. android 活体识别人脸动作活体静默活体Demo源码实现讲解

    android 活体识别人脸动作活体静默活体Demo源码实现讲解 这里说活体是基于单目摄像头活体,适合所有普通安卓Android 单目摄像头的手机,双目的需要硬件支持,这里不讲述 . 百度网盘体验地址 ...

  9. Android百度人脸识别慢,Android开发百度人脸识别模块使用分享

    content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1 ...

  10. android Camera2 API适配百度人脸识别SDK

    Camera2 API替换Camera API之后的问题 camera和camera2的最主要区别之一就是camera2不再支持nv21的输出,通常我们为了使视频预览更加的流畅,会采用YUV_420_ ...

最新文章

  1. 一份整理 | PyTorch是什么,为何选择它
  2. SAP CAR 的主要优势
  3. 文件服务器vsftp的配置
  4. 如何给图片赋值_医学数据的变量类型及在SPSS中的赋值方法(医学统计前的重要步骤)——【杏花开医学统计】...
  5. idea run和debug都是灰色的,没法点怎么解决
  6. 机器学习:集成学习(ensemble),bootstrap,Bagging,随机森林,Boosting
  7. 八千字硬核长文梳理Linux内核概念及学习路线
  8. gettimeofday函数使用《代码》
  9. 大数据带来的安全隐患有哪些
  10. 梦笔记2022-2-10
  11. zepto,kissy前端框架实现跨域
  12. MySQL错误号码1862:your password has expired
  13. 小程序嵌入h5并传值
  14. Kubernetes监控篇
  15. 用Python实现QQ找茬游戏外挂工具
  16. Pandas Percentile计算方法
  17. CleanMyMac X2022苹果电脑专业清理Mac加速器软件
  18. 前后端及常用语言介绍
  19. 透视变换(perspective transformation)
  20. 阿里----OSS对象存储服务

热门文章

  1. Python学习笔记:数据库2
  2. Python学习笔记:SMTP服务器
  3. GoogLeNet代码解读
  4. 科大星云诗社动态20210424
  5. 倾城之恋 “樱“爱而美2020-04-20
  6. 检查文件上传完成_“我的数据上传NCBI又报错了...” “攻略拿去!”
  7. 戏说 Windows GDI (1)
  8. asp.net中各种类型文件解析 收藏
  9. linux创建进程fork函数和vfork函数
  10. 线性回归python代码实现