Android人脸识别Demo竖屏YUV方向调整和图片保存
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方向调整和图片保存相关推荐
- android 人脸识别demo
Android 人脸识别 demo 可以使用 Google 的 Mobile Vision API 来实现.这是一个免费的.开源的库,可以帮助开发人员在应用程序中检测人脸.识别人脸.扫描条形码和二维码 ...
- android 人脸识别demo,Android Camera 内置人脸识别的Demo
CameraFace Android Camera 内置人脸识别的Demo 通过Android源生API支持的人脸识别FaceDetection,获取到脸部矩形坐标,左右眼坐标,嘴坐标通过View动态 ...
- Android基于虹软(ArcSoft)实现从0到1的人脸识别demo
Android基于虹软(ArcSoft)实现从0到1的人脸识别demo 1.在虹软的开发者中心创建一个自己的应用,将APP_ID与SDK_KEY记录下来,后面会用到.创建完后就可以下载SDK了. 2. ...
- android人脸识别门禁,安卓人脸识别门禁终端DM-A1
1.产品介绍: 安卓(Android)人脸识别门禁终端DM-A1是定位为一款功能丰富,扩展性强,稳定性高,简单维护的人脸识别一体机.它集深数科技人脸比对算法及人脸识别活体检测算法,实现5000人脸库下 ...
- Android 人脸识别
Android人脸识别技术,可以参考下面的网站. http://www.faceplusplus.com.cn/ 本项目使用的就是该网站的api. 项目具体使用的技术代码 /*** 用来压缩图片的方法 ...
- android人脸识别demo_零门槛解决Windows人脸识别应用开发难题
自人脸识别免费SDK--ArcFace3.0上线以来,凭借对人脸识别.活体检测.年龄检测.性别检测等核心算法模型进行全面升级,大幅提升算法鲁棒性,显著降低接入门槛,同时支持Windows.iOS.An ...
- Android 布局旋转 横屏竖屏
Android 屏幕旋转 横屏竖屏 横屏 竖屏 布局旋转 横屏 竖屏 方法一: *注意在setContentView()之前 if(this.getResources().getConfigurati ...
- Android 人脸识别了解一下 (上)
转载请注明作者及出处:https://www.jianshu.com/p/ca3a12bc4911 引言 人脸识别这件事想来早已经不新鲜,在 Android 中的应用也并不广泛,所以网上相关资料乏善可 ...
- 基于android系统的人脸检测系统设计 论文,基于Android人脸识别系统设计与实现.doc...
基于Android人脸识别系统设计与实现 基于Android人脸识别系统设计与实现 摘要:人脸识别是公共安全领域的研究重点.随着移动互联网的快速发展,移动式终端人脸识别应用日益广泛.探讨人脸识别在An ...
最新文章
- 事务配置_SSH(五)- 使用注解方式配置事务管理
- 大顶堆删除最大值_算法学习笔记(47): 二叉堆
- LMDB中的mmap、Copy On Write、MVCC深入理解——讲得非常好,常来看看!
- MyBatis-Plus 快速开始及详测 SpringBoot 集成Mybatis-Plus
- scala 样例类(case class) + 模式匹配代码示例
- boost::mp11::mp_same相关用法的测试程序
- apache站点优化——长连接
- nginx配置文件中location与root访问时的联系
- el-drawer点击的时候为什么有边框_80%人都有的表格强迫症怎么破,一招教你自动添加表格边框...
- 小程序 const moment = require('moment')_开源小程序精选
- pyspark分类算法之随机森林分类器模型实践【randomForestClassifier】
- 网工学习笔记——reboot
- 串口调试助手fx2n_串口调试助手发送控制台达PLC命令
- ROS安装教程(ubuntu18.04+melodic版本)
- 常见路由器初始密码合集
- 误差修正ECM模型怎么分析?
- android studio httpclient包导入,HttpClient不会导入Android Studio
- Tayga NAT64 IPv6与IPv4互访解决方案
- 通过经纬度求解方位角
- python运行按钮灰色_点击后,tkinter菜单按钮变灰了