Android 系统FaceDetector人脸识别检测,圆形相机预览框,截取图片中的人脸图片(宽高自定义),圆形图片显示。
本内容主要实现了以下功能:
- 圆形相机预览框
- FaceDetector人脸识别检测
- 截取图片中的人脸图片(宽高自定义)
- 圆形图片显示
效果图:
以下只说了大致的实现思路和核心入口代码,详情见demo(文末奉上)
1、圆形相机预览
自定义CircleCameraLayout类,自定义一个轮廓提供者裁剪一个圆形,在定义一个相机预览CameraPreview,然后把CameraPreview到CircleCameraLayout中。
2、FaceDetector人脸识别检测
通过实现Camera.PreviewCallback的方法拿到bytes数组,转为RGB_565的bitmap,然后对bitmap进行检测,代码如下
@Override
public void onPreviewFrame(byte[] bytes, Camera camera) {Log.d(TAG, "onPreviewFrame:" + camera);if (System.currentTimeMillis() - lastModirTime <= 200 || bytes == null || bytes.length == 0) {return;}face(bytes, camera);lastModirTime = System.currentTimeMillis();
}
private void face(byte[] bytes, Camera camera) {Camera.Size size = camera.getParameters().getPreviewSize();YuvImage image = new YuvImage(bytes, ImageFormat.NV21, size.width, size.height, null);if (image != null) {ByteArrayOutputStream stream = new ByteArrayOutputStream();image.compressToJpeg(new Rect(0, 0, size.width, size.height), 80, stream);Bitmap bmp = BitmapFactory.decodeByteArray(stream.toByteArray(), 0, stream.size());Matrix matrix = new Matrix();matrix.reset();matrix.setRotate(-90);bmp = Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(), matrix, true);Bitmap bitmap = bmp.copy(Bitmap.Config.RGB_565, true);//开始检测 当faces 说明检测到人脸了。FaceDetector faceDetector = new FaceDetector(bitmap.getWidth(), bitmap.getHeight(), 1);FaceDetector.Face[] face = new FaceDetector.Face[1];int faces = faceDetector.findFaces(bitmap, face);if (faces > 0) {Log.d(TAG, "onPreviewFrame检测到人脸");}try {stream.close();} catch (IOException e) {e.printStackTrace();}}
}
3、截取图片中的人脸图片
我们可以通过FaceHelper类对检测到有人脸的bitmap进行人脸截取就能拿到位于人脸区域的图片。
Bitmap faceBitmap = FaceHelper.genFaceBitmap(bitmap);//得到截取后的bitmap
在FaceHelper类中的genFaceBitmap方法中的最后几行中的下面这行的代码进行宽高截取,我这里写的是宽为480,高自适应。
final Bitmap result = Bitmap.createBitmap(cacheBitmap, startX, startY, 480, height);
4、圆形图片显示
主要是通过自定义CircleImageView得到了一个圆形的imageview。
最后记得添加相机聚焦等相关权限。
本文demo:
https://download.csdn.net/download/m13984458297/11351147
Android 系统FaceDetector人脸识别检测,圆形相机预览框,截取图片中的人脸图片(宽高自定义),圆形图片显示。相关推荐
- Android AR开发实践之七:OpenGLES相机预览背景绘制源码详解
Android AR开发实践之七:OpenGLES相机预览背景绘制源码详解 目录 Android AR开发实践之七:OpenGLES相机预览背景绘制源码详解 一.OpenGL ES渲染管线 1.基本处 ...
- android 圆形相机预览拍照_Android多种方式实现相机圆形预览的示例代码
效果图如下: 一.为预览控件设置圆角 public RoundTextureView(Context context, AttributeSet attrs) { super(context, att ...
- android 圆形相机预览拍照_Android多种方式实现相机圆形预览
最终效果图如下: 一.为预览控件设置圆角 public RoundTextureView(Context context, AttributeSet attrs) { super(context, a ...
- Android 模仿手机QQ表情输入和表情预览框
闲来无事花了一点空暇时间写了一个模仿Android版手机QQ的表情输入框 效果图如下 实现步骤 一:布局 二:录入填充表情 三:监听表情的适配器的触摸监听显示出预览框 一 .布局 我是自己自定一个Ex ...
- 人脸识别 无法打开相机 笔记本_笔记本上的人脸识别怎么用?需要安装驱动吗?...
越来越多的电脑支持人脸识别 通过IR红外镜头识别面孔 进系统又快又安全 那么问题来了 怎么看你的电脑支不支持人脸识别 需不需要安装驱动 如何设置呢 1.是否支持人脸识别 右击开始菜单进入[设备管理器] ...
- python人脸识别环境搭建_怎样用3分钟搭建 Python 人脸识别系统
Face Recognition 使用的是 C++ 开源库 dlib 通过深度学习模型构建的先进人脸识别系统,可通过 Python 接口或命令行工具对图片中的人脸进行识别.在 Labeled Face ...
- Python简单实现人脸识别检测, 对照片进行评分
大家好,今天和大家说说如何用Python简单实现人脸识别检测, 对照片进行排名,看看自己有多漂亮. [开发环境]: Python 3.8 Pycharm 2021.2 [模块使用]: requests ...
- Android系统VIN码识别SDK
Android系统VIN码识别SDK 什么是VIN码 汽车vin码是一组由十七个英数组成,用于汽车上的一组独一无二的号码,它可以识别汽车的制造商.发动机.底盘序列号等性能数据. VIN是英文(车辆识别 ...
- Python实现人脸识别检测, 对美女主播照片进行评分排名
前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 素材.视频.代码.插件安装教程我都准备好了,直接在文末名片自取就可点击此处跳转 开发环境: Python 3.8 Pycharm 2021.2 模块使用: ...
- Android相机预览方向
以前对Camera了解的不是太深入,最近有需求把人脸识别 集成到项目,必然会与Camera打交道,遇到一些坑,与大家分享一下. 一.预览方向 Camera.CameraInfo info = ne ...
最新文章
- Helm包管理工具(简介、安装、方法)
- java课程设计题目及代码中国象棋,写的太详细了
- FastReport 自适应列文字大小
- 网站停办了 服务器有备份吗,网站在服务器上四种备份方法
- boost::mpl::not_equal_to相关的测试程序
- Android 小项目之--Mini音乐播放器【简单版】(附源码)
- 黑发不知勤学早,白首方悔读书迟———颜真卿
- ffmpeg实现摄像头拉流_干货 | 速看!乐橙K32Famp;K36F摄像头全彩夜视功能的不同点全在这了!...
- 不会使用Spring的配置文件,赶紧把这个甩给他
- 单位阶跃信号是周期信号吗_vivoS7e是5G手机吗-支持5G吗-5G信号怎么样
- 批量下载花瓣图片脚本--抖机灵
- 安卓手机安装magisk
- (论文笔记)An Attention Enhanced Graph Convolutional LSTM Network for Skeleton-Based Action Recognition
- 游戏服务器的那些事儿
- 安卓桌面壁纸_梅糖桌面安卓手机版下载-梅糖桌面app官方版下载v2.2安卓版
- 时间格式化问题@DateTimeFormat和@JsonFormat的区别
- 乘幂法计算矩阵主特征值和特征向量-Matlab实现
- hibernate一对一主键关联映射(二)---双向关联
- uboot.lds 链接文件分析
- 电工学复习【9】-- 触发器和时序逻辑电路