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

本文主要是介绍Android相机预览,指定区域显示预览框,在区域内出现人脸进行人脸识别,并抓拍人脸照片存在本地,CameraX,虹软人脸识别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

效果图:

第一种是使用camerax进行预览,android camerax预览官方文档,主要通过imageAnalysis,抓帧进行图片处理,然后通过android自带的图片人脸识别FaceDetector判断是否有人脸,有人脸保存当前抓拍的照片:

val file = File(filesDir, "head_tmp.png")val create = Observable.create<File> { emitter ->val intArray = IntArray(2)iv_scan.getLocationInWindow(intArray)val createBitmap = Bitmap.createBitmap(bitmap, intArray[0], intArray[1], iv_scan.width, iv_scan.height)//必须是565才能识别val bitmap1: Bitmap = createBitmap.copy(Bitmap.Config.RGB_565, true)val faceDetector = FaceDetector(bitmap1.width, bitmap1.height, 1)val array = arrayOfNulls<FaceDetector.Face>(1)val faces = faceDetector.findFaces(bitmap1, array)if (faces > 0) {Log.e(TAG, "检测到脸")val fos = FileOutputStream(file.path)createBitmap.compress(Bitmap.CompressFormat.PNG, 100, fos)fos.flush()fos.close()emitter.onNext(file)} else {Log.e(TAG, "未检测到脸")emitter.onError(Throwable("未检测到脸"))}}var disposable: Disposable? = nullval observer = object : Observer<File> {override fun onNext(t: File) {disposable?.dispose()isOne = falsesetResult(Activity.RESULT_OK)finish()}override fun onError(e: Throwable) {isOne = true}override fun onComplete() {}override fun onSubscribe(d: Disposable) {disposable = d}}create.subscribeOn(Schedulers.computation())//指定被观察者线程.observeOn(AndroidSchedulers.mainThread())//指定观察者线程.subscribe(observer)

第二种使用了免费的虹软识别人脸识别,主要判断指定识别框的rect和虹软人脸识别框的rect,比较两个rect,是否在它的范围内,如果在抓拍人脸:

if (drawInfoList.size > 0) {for (i in drawInfoList.indices) {val rect: Rect = drawInfoList[i].rectval rect1 = Rect()iv_scan.getGlobalVisibleRect(rect1)if (rect1.contains(rect)) {//为了美观,扩大rect截取注册图val cropRect: Rect =CommUtils.getBestRect(previewSize!!.width, previewSize!!.height, faceInfoList[i].rect)cropRect.left = cropRect.left and 3.inv()cropRect.top = cropRect.top and 3.inv()cropRect.right = cropRect.right and 3.inv()cropRect.bottom = cropRect.bottom and 3.inv()headBmp = CommUtils.getHeadImage(nv21,previewSize!!.width,previewSize!!.height,faceInfoList[i].orient,cropRect,ArcSoftImageFormat.NV21)headBmp?.apply {cropBitmap(this)}break}}}

demo:https://github.com/withyi9223/facesb

这篇关于Android相机预览,指定区域显示预览框,在区域内出现人脸进行人脸识别,并抓拍人脸照片存在本地,CameraX,虹软人脸识别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

如何解决idea的Module:‘:app‘platform‘android-32‘not found.问题

《如何解决idea的Module:‘:app‘platform‘android-32‘notfound.问题》:本文主要介绍如何解决idea的Module:‘:app‘platform‘andr... 目录idea的Module:‘:app‘pwww.chinasem.cnlatform‘android-32

通过Spring层面进行事务回滚的实现

《通过Spring层面进行事务回滚的实现》本文主要介绍了通过Spring层面进行事务回滚的实现,包括声明式事务和编程式事务,具有一定的参考价值,感兴趣的可以了解一下... 目录声明式事务回滚:1. 基础注解配置2. 指定回滚异常类型3. ​不回滚特殊场景编程式事务回滚:1. ​使用 TransactionT

Android实现打开本地pdf文件的两种方式

《Android实现打开本地pdf文件的两种方式》在现代应用中,PDF格式因其跨平台、稳定性好、展示内容一致等特点,在Android平台上,如何高效地打开本地PDF文件,不仅关系到用户体验,也直接影响... 目录一、项目概述二、相关知识2.1 PDF文件基本概述2.2 android 文件访问与存储权限2.

Android Studio 配置国内镜像源的实现步骤

《AndroidStudio配置国内镜像源的实现步骤》本文主要介绍了AndroidStudio配置国内镜像源的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、修改 hosts,解决 SDK 下载失败的问题二、修改 gradle 地址,解决 gradle

Java中使用Hutool进行AES加密解密的方法举例

《Java中使用Hutool进行AES加密解密的方法举例》AES是一种对称加密,所谓对称加密就是加密与解密使用的秘钥是一个,下面:本文主要介绍Java中使用Hutool进行AES加密解密的相关资料... 目录前言一、Hutool简介与引入1.1 Hutool简介1.2 引入Hutool二、AES加密解密基础

python连接本地SQL server详细图文教程

《python连接本地SQLserver详细图文教程》在数据分析领域,经常需要从数据库中获取数据进行分析和处理,下面:本文主要介绍python连接本地SQLserver的相关资料,文中通过代码... 目录一.设置本地账号1.新建用户2.开启双重验证3,开启TCP/IP本地服务二js.python连接实例1.

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me

基于Python和MoviePy实现照片管理和视频合成工具

《基于Python和MoviePy实现照片管理和视频合成工具》在这篇博客中,我们将详细剖析一个基于Python的图形界面应用程序,该程序使用wxPython构建用户界面,并结合MoviePy、Pill... 目录引言项目概述代码结构分析1. 导入和依赖2. 主类:PhotoManager初始化方法:__in

SpringSecurity6.0 如何通过JWTtoken进行认证授权

《SpringSecurity6.0如何通过JWTtoken进行认证授权》:本文主要介绍SpringSecurity6.0通过JWTtoken进行认证授权的过程,本文给大家介绍的非常详细,感兴趣... 目录项目依赖认证UserDetailService生成JWT token权限控制小结之前写过一个文章,从S

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经