位置: 编程技术 - 正文
推荐整理分享[置顶] android人脸识别——HowOld测测你的年龄和性别([置顶]游戏名:chivalry2),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:[置顶]bilinovel,[置顶]津鱼.我爱你,[置顶]游戏名 TentacleLocker,[置顶]游戏名:chivalry2,[置顶]游戏名:chivalry2,[置顶]游戏名:chivalry2,[置顶]bilinovel,[置顶]电影名字《收件人不详》,内容如对您有帮助,希望把文章链接给更多的朋友!
这段时间微软的HowOldRobot 测试年龄的网站非常火,访问量已经爆棚了!不过,这个测试也有很多比较坑爹的地方。比如:。。。。。
再比如。。。
好了 言归正传!今天我们就来看看android中怎么利用人脸识别功能来实现我们自己的HowOld APP (PS:本人也是借鉴了网上大神的视频和资料 然后自己加以改进,有兴趣的可以去看看慕课网上鸿洋大神的视频 API
想要使用人脸识别功能,我们需要调用Face++中的一些API来完成工作。Face++的官网地址是: 使用Face++有几个步骤: 1.注册账号 2.创建应用 3.复制 Key 和 Sercret 4.下载SDK 5.将SDK放入我们的工程lib目录中
好了 准备工作做完了,接下来就开始编写我们的程序了。
布局首先是布局文件。下面是我们的界面视图。很简单的布局,上边一张图片 ,下边一个TextView加三个按钮 。没有太多好说的。
MainActivity.xml
人脸识别工具类接下来, 我们需要编写一个人脸识别工具类,根据我们传入的图片来进行识别并返回数据。其中Constact是我们的常量工具类,存放我们应用的Key和Secret.
FaceRecognize.class
程序主要逻辑然后我们在MainActivity中实现我们的主要逻辑。
MainActivity.class
在上面的代码片段中,我们定义了一些常量和控件,并且使用handler来处理 识别成功和识别失败两种情况。
在parseRusult方法中, 我们解析从服务器中返回的JSON数据,然后获取到我们想要的年龄和性别,脸部位置等数据。 用于服务器返回的脸部中心坐标和宽高等数据是使用在图片中的百分比所表示的,所以我们需要做下面的处理将之转换成真实像素位置。
然后 ,我们绘制脸部的识别框,就是示例图中的那个红色方框。他们是四条线段绘制的。
下一步,我们还需要将 表示性别和年龄的显示框绘制在相应的人脸框的上边,并对显示框做相应的校正,防止其过大。
我们的性别年龄显示框其实就是一个TextView ,并在左边通过drawableLeft设置了表示性别的图片。buildAgeBitmap函数用于将TextView转换为Bitmap对象
其中age_layout.xml就是性别年龄显示框的布局文件。
age_layout.xml
拍照、相册、识别处理最后,我们需要对底部的拍照、相册选择图片和识别按钮进行处理。
在OnActivityResult回调方法中,我们分别处理拍照、相册选择照片和图片裁剪等操作。
注意,从相册中选择的图片,我们需要重新调整其大小,防止其尺寸过大而使得程序崩溃。resizeBitmap方法用于调整图片大小
测试最后 ,对我们的程序进行测试~
测试结果嘛。。。。。还是阔以的!
源码下载Android内存分析工具 Android的一些内存知识垃圾回收(GC)垃圾回收包含两个过程:判定阶段,也就是判断哪些对象可以被回收,收集阶段,是指具体的回收策略。判定阶段
Android与蓝牙串口模块通信 由于项目的需要Android与蓝牙模块通信,发了时间学习了下,实现了Android与蓝牙模块的通信1.蓝牙串口模块使用SPP-CA模块蓝牙串口模块就是使用单片机的T
照片选择器 multiimageselector packagecom.me.nereo.multiimageselector;importandroid.content.Intent;importandroid.support.v7.app.ActionBarActivity;importandroid.os.Bundle;importandroid.text.TextUtils;importandroid.view.Menu;importan
上一篇:Android 蓝牙BLE 4.0 属性判断(android 蓝牙 驱动 适配 sdio rk)
下一篇:Android内存分析工具(android profiler内存分析)
友情链接: 武汉网站建设