效果图:

第一种是使用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,虹软人脸识别相关推荐

  1. Android 高德地图给指定坐标显示图片,以及聚合显示

    官网实例请点击:Android 高德地图聚合官网 下面是一个案例: 效果图: MainActivity public class MainActivity extends AppCompatActiv ...

  2. Android 布局文件Graphical Layout不显示预览+不能实现拖置功能

    为什么80%的码农都做不了架构师?>>>    买了一本<精通移动App测试实战:技术.工具和案例>这本书,准备学习一下App测试. 安装书中配置好了相关环境.见:htt ...

  3. Android 布局文件Graphical Layout不显示预览

    在当前项目上右键Android Tools --->Fix Project Proerties--->再次右键当前项目:Close Project --->Open Project, ...

  4. Android相机、相册获取图片显示并保存到SD卡

    如题,这个需求本不是一个很复杂的过程,但是却存在一些隐患,我也是最近在项目中碰到这个问题,将Android通过相机或相册获取图片并最终显示在界面上做了一个小研究,现将一些结果和附上的一个Demo叙述如 ...

  5. Android相机预览设置适配及显示方式

    Android相机的部分工作原理. 预览流程 相机预览是Android Camera最常用的功能之一,它是很多功能重要的输入,例如扫码.AR等. 一般而言,相机预览的整体流程,可以通过下图表示: 其中 ...

  6. Android 相机预览 横屏竖屏 -- 显示

    相机在设备上处于固定位置,无论设备是否 是手机.平板电脑或计算机.当设备方向更改时, 相机方向更改.常见的布局显示比率是 4:3. 对于前置摄像头,图像缓冲区逆时针旋转(从 传感器的自然方向) 对于后 ...

  7. Android 自定义Camera(一)如何预览相机

    Android Camera之如何预览相机 1.官方Api描述 翻译后为: 使用android.hardware.Camera拍照,请使用以下步骤: 1.从open(int)获取一个Camera实例. ...

  8. 2022-07-21 Android 相机预览数据转Bitmap优化

    背景 在Android开发中我们有时候会需要拿到相机预览数据转成bitmap自己做处理. 常用方式 在Android API中提供了 一套转换方式: private Bitmap convertBit ...

  9. android 预览和拍照成像方向不一致,Android相机预览方向深入探究

    原标题:Android相机预览方向深入探究 今日快讯 9月7日,北京市交通委召集各区管理部门和15家共享自行车企业负责人,听取共享自行车投放和管理的意见建议,研究决定并下发通知,暂停在本市新增投放共享 ...

最新文章

  1. Django Request对象3.3
  2. Html.Action,Html.RenderAction,Html.ActionLink,Url.Action区别
  3. Oracle 快速插入1000万条数据的实现方式
  4. 日志中的秘密 Windows登录类型都有哪些
  5. 操作系统和数据库的知识梳理(思维导图)
  6. 好消息,关于2005的default provider
  7. oracle insert 当前时间_Oracle知识点总结
  8. object htmldivelement什么意思_深入探究 Function amp; Object 鸡蛋问题
  9. Max retries exceeded with url
  10. 枚举、宏定义enum /defint/typedef
  11. 樊登高效休息法心得400字_超级干货!让你快速恢复精力的高效休息法!!
  12. 显示器不能全屏及开机慢解决方案
  13. python爬取ppt课件_Python 爬虫 好大学在线PPT
  14. 直通车推广技巧、店铺人群标签怎么做?猜你喜欢入池检测
  15. Oracle DB 数据库维护
  16. 从小米智能家居入手,揭秘物联网关键技术​
  17. @Deprecated 的功能
  18. python实现触摸精灵功能_触摸精灵实现找图功能
  19. 怎样和虐死人的老项目谈恋爱
  20. 构建一体化数字营销平台,助力医药企业实现销售转化能级大幅跃迁 | 案例研究

热门文章

  1. photoshop中如何在6寸相纸上打印1寸照片12张3X4模式(手动拖动模式)
  2. vue 路由监听 watch
  3. Springcould学习总结
  4. Nginx-浅析(转)
  5. python 删除pdf页面_使用Python批量删除扫描PDF中的空白页
  6. JAVA生成纯色背景图-自定义大小-自定义颜色
  7. 彻底解决微软EDGE浏览器新建标签页后出现Bing搜索框
  8. Verilog语言要素(二)
  9. 量子计算机解泊松方程,学界 | 从泊松方程的解法,聊到泊松图像融合
  10. 第一款个人应用——《不做手机控》——终于上线啦!