- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AndroidAPI教程人脸检测(FaceDetect).
Android API教程:人脸检测(Face Detect)
? ?? ? 通过两个主要的API,Android提供了一个直接在位图上进行脸部检测的方法,这两个API分别是? ? android.media.FaceDetector和android.media.FaceDetector.Face,已经包含在Android官 方API中。本教程来自Developer网站,向大家介绍了这些API,同时提供教程中实例代码下载。
? ?? ? 所谓人脸检测就是指从一副图片或者一帧视频中标定出所有人脸的位置和尺寸。人脸检测是人脸识别系统中的一个重要环节,也可以独立应用于视频监控。在数字媒 体日益普及的今天,利用人脸检测技术还可以帮助我们从海量图片数据中快速筛选出包含人脸的图片。? ???在目前的数码相机中,人脸检测可以用来完成自动对焦,即“脸部对焦”。“脸部对焦”是在自动曝光和自动对焦发明后,二十年来最重要的一次摄影技术革 新。家用数码相机,占绝大多数的照片是以人为拍摄主体的,这就要求相机的自动曝光和对焦以人物为基准。? ?? ? 构建一个人脸检测的Android Activity? ?? ? 你可以构建一个通用的Android Activity,我们扩展了基类ImageView,成为MyImageView,而我们需要进行检测的包含人脸的位图文件必须是565格式,API才 能正常工作。被检测出来的人脸需要一个置信测度(confidence measure),这个措施定义在android.media.FaceDetector.Face.CONFIDENCE_THRESHOLD。最重要的方法实现在setFace(),它将FaceDetector对象实例化,同时调用findFaces,结果存放在faces里,人脸的中点转移到MyImageView。代码如下:
public class TutorialOnFaceDetect1 extends Activity {
? ???private MyImageView mIV;
? ???private Bitmap mFaceBitmap;
? ???private int mFaceWidth = 200;
? ???private int mFaceHeight = 200;
? ???private static final int MAX_FACES = 1;
? ???private static String TAG = TutorialOnFaceDetect;
? ???
? ? @Override
? ? public void onCreate(Bundle savedInstanceState) {
? ? super.onCreate(savedInstanceState);
? ???
? ? mIV = new MyImageView(this);
? ? setContentView(mIV, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
? ???
? ? // load the photo
? ? Bitmap b = BitmapFactory.decodeResource(getResources(), R.drawable.face3);
? ? mFaceBitmap = b.copy(Bitmap.Config.RGB_565, true);
? ? b.recycle();
? ???
? ? mFaceWidth = mFaceBitmap.getWidth();
? ? mFaceHeight = mFaceBitmap.getHeight();
? ? mIV.setImageBitmap(mFaceBitmap);
? ???
? ? // perform face detection and set the feature points setFace();
? ???
? ? mIV.invalidate();
? ? }
? ???
? ? public void setFace() {
? ? FaceDetector fd;
? ? FaceDetector.Face [] faces = new FaceDetector.Face[MAX_FACES];
? ? PointF midpoint = new PointF();
? ? int [] fpx = null;
? ? int [] fpy = null;
? ? int count = 0;
? ???
文档评论(0)