android拍照识别人脸,Android 人脸识别拍照demo
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相关推荐
- android人脸识别源代码,Android自带的人脸识别
1.Android自带的人脸识别Android自带的人脸识别只能识别出人脸在画面中的位置,中点,眼间距,角度等基本特性,提供给拍照性质的应用使用.从基本功能中不能得出明显的特征数据 2.底层库支持ex ...
- 人脸识别考勤 Android 课程设计
题目十二 如果点不了衔接,下面有文本 参考文挡百度人脸识别api https://ai.baidu.com/ai-doc/FACE/7k37c1twu 学长写的 https://blog.csdn.n ...
- android 动态人脸识别码,android OpenCV研究之动态人脸识别
随着直播渐渐的火起来,像抱着直播大腿的其他功能也渐渐的火起来了,比如说人脸识别.说起人脸识别用处甚广,比如说有以这个功能为核心的app:美颜相机.美图秀秀.SNOW等等,但是美颜相机和美图秀秀是用的国 ...
- android 表情识别,基于Android平台的人脸表情识别系统的设计与实现
摘要: 随着目前移动设备硬件技术的不断发展,其性能与PC的差距越来越小,这使得在嵌入式平台上进行图像处理成为了可能.目前使用最广泛的是基于Android系统的嵌入式平台,与之相关的图像类应用需求也渐渐 ...
- Android相机预览,指定区域显示预览框,在区域内出现人脸进行人脸识别,并抓拍人脸照片存在本地,CameraX,虹软人脸识别
效果图: 第一种是使用camerax进行预览,android camerax预览官方文档,主要通过imageAnalysis,抓帧进行图片处理,然后通过android自带的图片人脸识别FaceDete ...
- Android Q 上的Biometric生物识别之Face人脸识别流程
第一部分,人脸识别身份验证HIDL 借助人脸识别身份验证功能,用户只需要将自己的面孔对准设备即可将其解锁.Android 10 增加了对一种新的人脸识别身份验证堆栈的支持,这种堆栈可安全处理摄像头帧, ...
- 安信可ESP32-CAM摄像头开发demo--局域网拍照、实时视频、人脸识别
ESP32-CAM内嵌网页局域网通信 目录 一.前言 二.环境搭建及编译 2.1 Linux环境安装 2.2 代码获取 2.3 编译工程 三.建立局域网 3.1 station 模式 3.2 AP模式 ...
- android 活体识别人脸动作活体静默活体Demo源码实现讲解
android 活体识别人脸动作活体静默活体Demo源码实现讲解 这里说活体是基于单目摄像头活体,适合所有普通安卓Android 单目摄像头的手机,双目的需要硬件支持,这里不讲述 . 百度网盘体验地址 ...
- Android百度人脸识别慢,Android开发百度人脸识别模块使用分享
content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1 ...
- android Camera2 API适配百度人脸识别SDK
Camera2 API替换Camera API之后的问题 camera和camera2的最主要区别之一就是camera2不再支持nv21的输出,通常我们为了使视频预览更加的流畅,会采用YUV_420_ ...
最新文章
- 一份整理 | PyTorch是什么,为何选择它
- SAP CAR 的主要优势
- 文件服务器vsftp的配置
- 如何给图片赋值_医学数据的变量类型及在SPSS中的赋值方法(医学统计前的重要步骤)——【杏花开医学统计】...
- idea run和debug都是灰色的,没法点怎么解决
- 机器学习:集成学习(ensemble),bootstrap,Bagging,随机森林,Boosting
- 八千字硬核长文梳理Linux内核概念及学习路线
- gettimeofday函数使用《代码》
- 大数据带来的安全隐患有哪些
- 梦笔记2022-2-10
- zepto,kissy前端框架实现跨域
- MySQL错误号码1862:your password has expired
- 小程序嵌入h5并传值
- Kubernetes监控篇
- 用Python实现QQ找茬游戏外挂工具
- Pandas Percentile计算方法
- CleanMyMac X2022苹果电脑专业清理Mac加速器软件
- 前后端及常用语言介绍
- 透视变换(perspective transformation)
- 阿里----OSS对象存储服务
热门文章
- Python学习笔记:数据库2
- Python学习笔记:SMTP服务器
- GoogLeNet代码解读
- 科大星云诗社动态20210424
- 倾城之恋 “樱“爱而美2020-04-20
- 检查文件上传完成_“我的数据上传NCBI又报错了...” “攻略拿去!”
- 戏说 Windows GDI (1)
- asp.net中各种类型文件解析 收藏
- linux创建进程fork函数和vfork函数
- 线性回归python代码实现