2019独角兽企业重金招聘Python工程师标准>>>

本博客包含三个常用方法,用于盛开Android版人脸识别Demo中竖屏使用时送入yuv数据,但一直无法识别的情况。 1.首先可以尝试顺时针旋转90°或270°,然后送入识别SDK。 2.旋转方向后依然无法识别时,可以尝试saveImg( ),保存本地检查图片是否符合要求。 |

  /*** 视频顺时针旋转90* 该方法仅仅在竖屏时候使用* */public static byte[] rotateYUV420Degree90(byte[] data, int imageWidth,int imageHeight) {byte[] yuv = new byte[imageWidth * imageHeight * 3 / 2];int i = 0;for (int x = 0; x < imageWidth; x++) {for (int y = imageHeight - 1; y >= 0; y--) {yuv[i] = data[y * imageWidth + x];i++;}}i = imageWidth * imageHeight * 3 / 2 - 1;for (int x = imageWidth - 1; x > 0; x = x - 2) {for (int y = 0; y < imageHeight / 2; y++) {yuv[i] = data[(imageWidth * imageHeight) + (y * imageWidth) + x];i--;yuv[i] = data[(imageWidth * imageHeight) + (y * imageWidth)+ (x - 1)];i--;}}return yuv;}public static byte[] YUV420spRotate270(byte[] src, int width, int height) {int count = 0;int uvHeight = height >> 1;int imgSize = width * height;byte[] des = new byte[imgSize * 3 >> 1];//copy yfor (int j = width - 1; j >= 0; j--) {for (int i = 0; i < height; i++) {des[count++] = src[width * i + j];}}//u,vfor (int j = width - 1; j > 0; j -= 2) {for (int i = 0; i < uvHeight; i++) {des[count++] = src[imgSize + width * i + j - 1];des[count++] = src[imgSize + width * i + j];}}return des;}private int i = 1;private String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/0Face/";private Calendar now = new GregorianCalendar();private SimpleDateFormat simpleDate = new SimpleDateFormat("yyyyMMddHHmmss", Locale.getDefault());private String fileName = simpleDate.format(now.getTime());/*** @param data yuv图像数据* @param width * @param height*/public void saveImg(byte[] data, int width, int height) {File dir = new File(path);if (!dir.exists()) dir.mkdirs();File f = new File(path + (fileName + "-" + i++) + ".jpg");FileOutputStream fOut = null;try {//yuv转成bitmapYuvImage image = new YuvImage(data, ImageFormat.NV21, width, height, null);ByteArrayOutputStream stream = new ByteArrayOutputStream();image.compressToJpeg(new Rect(0, 0, width, height), 80, stream);Bitmap bmp = BitmapFactory.decodeByteArray(stream.toByteArray(), 0, stream.size());//bitmap保存至本地fOut = new FileOutputStream(f);bmp.compress(Bitmap.CompressFormat.JPEG, 100, fOut);fOut.flush();fOut.close();bmp.recycle();stream.close();} catch (Exception ex) {Log.e("Sys", "Error:" + ex.getMessage());}}

转载于:https://my.oschina.net/bangbangda/blog/3041733

Android人脸识别Demo竖屏YUV方向调整和图片保存相关推荐

  1. android 人脸识别demo

    Android 人脸识别 demo 可以使用 Google 的 Mobile Vision API 来实现.这是一个免费的.开源的库,可以帮助开发人员在应用程序中检测人脸.识别人脸.扫描条形码和二维码 ...

  2. android 人脸识别demo,Android Camera 内置人脸识别的Demo

    CameraFace Android Camera 内置人脸识别的Demo 通过Android源生API支持的人脸识别FaceDetection,获取到脸部矩形坐标,左右眼坐标,嘴坐标通过View动态 ...

  3. Android基于虹软(ArcSoft)实现从0到1的人脸识别demo

    Android基于虹软(ArcSoft)实现从0到1的人脸识别demo 1.在虹软的开发者中心创建一个自己的应用,将APP_ID与SDK_KEY记录下来,后面会用到.创建完后就可以下载SDK了. 2. ...

  4. android人脸识别门禁,安卓人脸识别门禁终端DM-A1

    1.产品介绍: 安卓(Android)人脸识别门禁终端DM-A1是定位为一款功能丰富,扩展性强,稳定性高,简单维护的人脸识别一体机.它集深数科技人脸比对算法及人脸识别活体检测算法,实现5000人脸库下 ...

  5. Android 人脸识别

    Android人脸识别技术,可以参考下面的网站. http://www.faceplusplus.com.cn/ 本项目使用的就是该网站的api. 项目具体使用的技术代码 /*** 用来压缩图片的方法 ...

  6. android人脸识别demo_零门槛解决Windows人脸识别应用开发难题

    自人脸识别免费SDK--ArcFace3.0上线以来,凭借对人脸识别.活体检测.年龄检测.性别检测等核心算法模型进行全面升级,大幅提升算法鲁棒性,显著降低接入门槛,同时支持Windows.iOS.An ...

  7. Android 布局旋转 横屏竖屏

    Android 屏幕旋转 横屏竖屏 横屏 竖屏 布局旋转 横屏 竖屏 方法一: *注意在setContentView()之前 if(this.getResources().getConfigurati ...

  8. Android 人脸识别了解一下 (上)

    转载请注明作者及出处:https://www.jianshu.com/p/ca3a12bc4911 引言 人脸识别这件事想来早已经不新鲜,在 Android 中的应用也并不广泛,所以网上相关资料乏善可 ...

  9. 基于android系统的人脸检测系统设计 论文,基于Android人脸识别系统设计与实现.doc...

    基于Android人脸识别系统设计与实现 基于Android人脸识别系统设计与实现 摘要:人脸识别是公共安全领域的研究重点.随着移动互联网的快速发展,移动式终端人脸识别应用日益广泛.探讨人脸识别在An ...

最新文章

  1. 事务配置_SSH(五)- 使用注解方式配置事务管理
  2. 大顶堆删除最大值_算法学习笔记(47): 二叉堆
  3. LMDB中的mmap、Copy On Write、MVCC深入理解——讲得非常好,常来看看!
  4. MyBatis-Plus 快速开始及详测 SpringBoot 集成Mybatis-Plus
  5. scala 样例类(case class) + 模式匹配代码示例
  6. boost::mp11::mp_same相关用法的测试程序
  7. apache站点优化——长连接
  8. nginx配置文件中location与root访问时的联系
  9. el-drawer点击的时候为什么有边框_80%人都有的表格强迫症怎么破,一招教你自动添加表格边框...
  10. 小程序 const moment = require('moment')_开源小程序精选
  11. pyspark分类算法之随机森林分类器模型实践【randomForestClassifier】
  12. 网工学习笔记——reboot
  13. 串口调试助手fx2n_串口调试助手发送控制台达PLC命令
  14. ROS安装教程(ubuntu18.04+melodic版本)
  15. 常见路由器初始密码合集
  16. 误差修正ECM模型怎么分析?
  17. android studio httpclient包导入,HttpClient不会导入Android Studio
  18. Tayga NAT64 IPv6与IPv4互访解决方案
  19. 通过经纬度求解方位角
  20. python运行按钮灰色_点击后,tkinter菜单按钮变灰了

热门文章

  1. Oracle左右链接
  2. Python中包(package)的调用方式
  3. 出现 HTTP 错误 500.19 错误代码 0x800700b7
  4. Weighted-Entropy-based Quantization for Deep Neural Networks 论文笔记
  5. nSamplesPerSec和nAvgBytesPerSec
  6. Spring——原理解析-利用反射和注解模拟IoC的自动装配
  7. 【数据库范式】 分析题第一范式
  8. 网站移动版本开发踩坑实录二
  9. cpu封装技术 cpu知识 zol术语
  10. P1352 没有上司的舞会