前言

碰到项目需求要判断上传的图片里只能有一个人,就像到了人脸识别功能,网上查资料说需要用opencv等各种图像库,项目肯定不能接受,没想到Android很早就已经集成了人脸识别的功能,这里记录一下。

实现效果

实现接口

Android自带了一个FaceDetector人脸探测器,能够对加载到内存中的Bitmap图片做人脸识别,需要注意的是Bitmap加载的时候一定要指定使用Bitmap.Config.RGB_565的加载类型,其他的都不会有识别效果。

public class FaceDetectorImageView extends AppCompatImageView {// 人脸监测对象private FaceDetector faceDetector;// 识别到的人脸private FaceDetector.Face[] faces;// 需要识别的图片private Bitmap bitmap;// 最多需要识别的人数private int maxFaces = 10;// 真正识别到的人数private int realFaces = 0;private Paint paint;public FaceDetectorImageView(Context context) {this(context, null);}public FaceDetectorImageView(Context context, @Nullable AttributeSet attrs) {this(context, attrs, 0);}public FaceDetectorImageView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);init();}private void init() {BitmapFactory.Options options = new BitmapFactory.Options();// 一定要设置,否则无法识别人脸options.inPreferredConfig = Bitmap.Config.RGB_565;bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.faces, options);// 识别人脸数组定义faces = new FaceDetector.Face[maxFaces];faceDetector = new FaceDetector(bitmap.getWidth(), bitmap.getHeight(), maxFaces);// 人脸识别器开始识别,速度还是比较快的,放在主线程也没什么问题realFaces = faceDetector.findFaces(bitmap, faces);// 初始化画笔工具paint = new Paint();paint.setStyle(Paint.Style.STROKE);paint.setColor(getResources().getColor(R.color.colorAccent));paint.setStrokeWidth(5);setImageBitmap(bitmap);}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);// 在识别的每个人的眼睛位置画正方形for (int i = 0; i < realFaces; i++) {FaceDetector.Face face = faces[i];float distance = face.eyesDistance();PointF mid = new PointF();face.getMidPoint(mid);canvas.drawRect(mid.x - distance / 2,mid.y - distance / 2,mid.x + distance / 2,mid.y + distance / 2, paint);}}
}

以上就是全部的实现代码,非常简单,效果感觉还不错。

Android自带人脸识别相关推荐

  1. 基于Android系统的人脸识别签到软件

    项目名称:   基于Android系统的人脸识别签到软件 目  录 1 项目介绍..... 1 1.1 项目背景.... 1 1.2 产品特点.... 2 1.3 可行性分析.... 2 1.3.1 ...

  2. android 动态人脸识别码,Android开发中人脸识别(静态)

    知道没有妹纸,你们是不会看的.先放效果图 最近,项目中需要用到人脸识别,苦于无奈,各种百度,google有关Android开发中人脸识别的内容,最终发现Android官方自带的FaceDetector ...

  3. android 静态图片自动切换,Android静态图片人脸识别的完整demo(附完整源码)

    Android静态图片人脸识别的完整demo(附完整源码) 来源:互联网 作者:佚名 时间:2015-03-24 20:07 本文介绍了android静态识别人脸并进行标记人眼位置及人脸框的完整dem ...

  4. Android园区部队人脸识别源码门禁项目讲解

    Android园区部队人脸识别源码门禁项目讲解 这边搞人脸识别相关项目有一段时间,今天抽时间讲述一个经典的人脸识别项目:部队人脸识别门禁系统. 大家都知道部队对人员管理安全要求是相当高的,很多保密的技 ...

  5. 基于Android端的照片比对系统,基于Android系统的人脸识别系统

    [文章摘要] 当前随着基于Android系统的移动终端设备的广泛应用,以及图像采集设备的普遍集成,使得Android系统的图像采集设备除了具有照相.摄像功能以外,正在扩展新的实用型功能.其中,利用An ...

  6. android项目实战-人脸识别接口应用

    android项目实战-人脸识别接口应用 1.face++接口: 2.源码: 3.效果: 4.App下载: 5.代码解读: FaceUtils.java FaceAdapter.java ImageR ...

  7. 人脸识别4:Android InsightFace实现人脸识别Face Recognition(含源码)

    人脸识别4:Android InsightFace实现人脸识别Face Recognition(含源码) 目录 人脸识别4:Android InsightFace实现人脸识别Face Recognit ...

  8. 【Android App】人脸识别中借助摄像头和OpenCV实时检测人脸讲解及实战(附源码和演示 超详细)

    需要全部代码请点赞关注收藏后评论区留言私信~~~ 一.借助摄像头实时检测人脸 与Android自带的人脸检测器相比,OpenCV具备更强劲的人脸识别功能,它可以通过摄像头实时检测人脸,实时检测的预览空 ...

  9. android opencv单机版人脸识别+比对

    原理: 通过android 系统自带的谷歌人脸识别获取响应的图片,保存在本地,然后跟先前的照片作比较,相似度大于0.8可以算为同一个人 java 部分代码: public class FaceRecA ...

最新文章

  1. keepalived 高可用日志说明及实战配置日志路径
  2. Scrapy 框架 中间件,信号,定制命令
  3. JDBC之一:JDBC快速入门
  4. java---Socket编程出现的异常种类
  5. 开发工具总结(2)之全面总结Android Studio2.X的填坑指南
  6. (转)Java线程:新特征-线程池
  7. Oracle 11g Dataguard搭建及知识梳理
  8. 5G、IoT 时代下,手机聚焦拍照是否走错了方向?
  9. 存储网络与存储系统架构分析
  10. StanfordDB class自学笔记 (7) SQL
  11. 微信小程序-利用wxParse将html转为wxml
  12. 怎么看xp计算机mac地址,查找MAC地址的两种方法
  13. 病毒常用方法之隐身术
  14. 高精度室内定位导航 需要什么样的精准室内定位技术方案
  15. shell 编程 入门到实战详解
  16. echart旭日图_ECharts 旭日图
  17. Oracle转MySQL存储函数percentile_cont(比例) WITHIN GROUP( ORDER BY to_number(分数) )用法
  18. 计算机在机械智能制造中的应用,数控技术在智能制造中的应用及发展
  19. 强化学习(1)-介绍
  20. 学了一阵子python pygame, 写一些总结,回头看看哪些地方不足

热门文章

  1. 第四章 序列式容器(sequence containers)
  2. java在文件中输出换行符
  3. 对于团队的一些感悟感想
  4. 微电子新手入门之Cadence常用操作——Cadence layout打散版图
  5. Native Bayes
  6. 如何实现可靠UDP传输
  7. 对计算机专业的认识和理想
  8. QTextEdit详解
  9. android 三大框架是什么,聊聊Android中的三大框架
  10. ffmpeg合并(复用)音频和视频文件,组成mp4