android人脸识别源代码,Android自带的人脸识别
1.Android自带的人脸识别Android自带的人脸识别只能识别出人脸在画面中的位置,中点,眼间距,角度等基本特性,提供给拍照性质的应用使用。从基本功能中不能得出明显的特征数据
2.底层库支持external/neven/*
3.接口frameworks/base/media/java/android/media/FaceDetector.java
4.Android源码参考packages/apps/Gallery/src/com/android/camera/*
5.关键代码分析
package com.android.mydetect;
import android.app.Activity;
import android.widget.TextView;
import android.os.Bundle;
import android.media.FaceDetector;//人脸识别接口
import android.widget.ImageView;
import android.graphics.BitmapFactory;
import android.graphics.Bitmap;
import android.graphics.PointF;
import android.graphics.Matrix;
import android.util.Log;
import android.graphics.Canvas;
import android.graphics.Paint;
public class MyDetectActivity extends Activity {
private ImageView mImageView;//图片显示控件
private Bitmap mBitmap;
private float mScale = 1F;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mImageView = (ImageView) this.findViewById(R.id.image);
detect();//识别函数
}
private void handleFace(FaceDetector.Face f) {//在图片上对每张脸进行处理
PointF midPoint = new PointF();
int r = ((int) (f.eyesDistance() * mScale * 1.5));//取眼睛间距离
f.getMidPoint(midPoint);//取脸的中点
midPoint.x *= mScale;
midPoint.y *= mScale;
Canvas c = new Canvas(mBitmap);
Paint p = new Paint();
p.setAntiAlias(true);
p.setAlpha(0x80);
c.drawCircle(midPoint.x, midPoint.y, r, p)//用半透明标出人脸区域;
mImageView.setImageBitmap(mBitmap);//显示图片
}
private void detect() {
Matrix matrix = new Matrix();
FaceDetector.Face[] mFaces = new FaceDetector.Face[3];//定义最多识别三张脸
int mNumFaces = 0;
mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.baby);//取原始图
if (mBitmap == null) {
return;
}
if (mBitmap.getWidth() > 256) {
mScale = 256.0F / mBitmap.getWidth();
}
matrix.setScale(mScale, mScale);
Bitmap faceBitmap = Bitmap.createBitmap(mBitmap, 0, 0, mBitmap
.getWidth(), mBitmap.getHeight(), matrix, true);//生成缩放后的新图
mScale = 1.0F / mScale;
if (faceBitmap != null) {
FaceDetector detector = new FaceDetector(faceBitmap.getWidth(),
faceBitmap.getHeight(), mFaces.length);//创建识别器
mNumFaces = detector.findFaces(faceBitmap, mFaces);//识别
if (mNumFaces > 0) {
for (int i = 0; i < mNumFaces; i++) {
handleFace(mFaces[i]);//调用函数对人脸画面进行处理
}
}
}
}
}
android人脸识别源代码,Android自带的人脸识别相关推荐
- android 网络调试 源代码,Android源代码调试环境搭建
我们在调试Android应用程序的时候,有时候遇到一些莫名其妙的问题,因此我们需要查看Android内部是如何调用的.我们都知道Android是一个伟大的开源项目,因此debug的时候肯定是支持源代码 ...
- android一键拨号 源代码,android 使用意图(Intent)实现一键拨号实例
本文打算实现具有一个一键拨号功能的 APP 1.布局文件activity_main.xml xmlns:tools="http://schemas.android.com/tools&quo ...
- android摇骰子源代码,Android实现微信摇骰子游戏
过年怎么可以不玩红包娱乐一下呢,微信里的摇骰子大小和石头剪刀布就是不错的游戏方式. 使用Java的Random函数很容易实现,以骰子为例: 1.骰子摇动的动画,使用animation-list帧动画实 ...
- android 红包雨源代码,Android 红包雨效果自定义控件
WX20201231-181616@2x.png 思路:利用Path绘制动画轨迹,再使用PathMeasure获取轨迹中的坐标位置实时改变view的坐标完成红包动画. 封装一个红包容器view用于管理 ...
- android英语字典(源代码),android英语字典(内含源码哦)
英文词典是手机中经常使用的应用.因此,在本文将结合Android来讨论如何实现一个Android版的英文词典.实现英文词典的方法很多.在本文使用了SQLite数据库来保存英文单词信息.系统通过SQLi ...
- android选项菜单源代码,Android应用程序----UI界面控件(菜单menu)
菜单是应用程序中非常重要的组成部分,能够在不占用界面空间的前提下,为应用程序提供了统一的功能和设置界面,并为程序开发人员提供了易于使用的编程接口 Android系统支持三种菜单 选项菜单(Option ...
- android拨号器源代码,android拨号器...
写完这个拨号器,感慨良多.因刚入门android开发,写的过程,可谓九曲18弯,从搭建开发环境,到完成此拨号器,问题颇多 呵呵,写完这个拨号器,我对android的开发环境算是理解.入门了! ... ...
- android中计算机源代码,Android源代码查看途径
作为一个android coder,多阅读android源码对提高android开发水平是很有帮助的,那么我们可以通过哪些途径查看android源码呢 1.如果你能够FQ的话可以去android官网查 ...
- android北京地铁源代码,Android自定义View实现地铁显示牌效果
本文实例为大家分享了Android地铁显示牌的具体代码,供大家参考,具体内容如下 预览效果 目录 SubwayBoardView.java 代码 public class SubwayBoardVie ...
最新文章
- 【tensorflow】】模型优化(一)指数衰减学习率
- keras和tensorflow使用 keras.callbacks.EarlyStopping 提前结束训练
- 【蓝桥杯】历届试题 地宫取宝
- 科大星云诗社动态20210427
- MFC视图切换大全总结
- leader选举的源码分析-Messenger
- 小样本点云深度学习库_小样本学习综述报告
- 使用 ZFS 的 Ubuntu 20.10 安装工具默认启用 TRIM
- node.js中实现同步操作的3种实现方法
- 4.ID主键生成策略
- OSChina 周二乱弹 —— 加班的代码不要枉费了我的童子功
- 使用Mac电脑内置的屏幕共享功能,进行远程桌面管理
- java 纯真ip 乱码_UTF-8使用纯真IP数据库乱码问题
- win10 20h2 计算机属性,Win10 20H2
- linux设置双屏拼接_双屏、3屏拼接——A卡、N卡——Windows、Linux
- DS18B20单总线协议
- PS CS6启动“不能打开暂存盘文件”的解决方法
- 关于电源线 USB台灯3C认证相关介绍
- 【C++OJ多重继承与虚拟继承】商旅信用卡(多重继承)
- 基于张正友平面标定法的摄像机标定及GUI实现
热门文章
- https wireshark抓包——要解密出原始数据光有ssl 证书还不行,还要有浏览器内的pre-master-secret(内存里)...
- Delphi 多文件拖放获取路径示例
- HDU 6015 Colorful Tree(2017多校)
- leecode第八十九题(格雷编码)
- 低版本火狐提示HTTPS链接不安全的解决办法
- ubuntu下python+tornado+supervisor+nginx部署
- 【mongoDB实战】mongo对某个键添加索引
- 数据结构 树的链式存储(二叉表示法)
- opencv编程解决warning C4003: “max”宏的实参不足
- Redis学习(4)-数据类型set和zset