Android 的Face Detector实现人脸识别

本文介绍了如何在Android平台上利用SDK的FaceDetector实现Bitmap中的人脸识别功能。流程包括从资源读取图片,通过FaceDetector API进行识别,并在图片上显示人脸框。FaceDetector通过寻找眼睛来检测人脸,返回的数据包含两眼间距、中心点位置和可信度。在大尺寸图片中,FaceDetector可能耗时较长,因此建议使用AsyncTask避免UI线程阻塞。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

很多手机图片管理应用都开始集成人脸识别功能。一提到人脸识别,模式识别,滤波,BlahBlah 一堆复杂的技术名字戳入脑海中,立刻觉得这玩意儿没法碰,太玄乎了。其实Android SDK从1.0版本中(API level 1)就已经集成了简单的人脸识别功能,通过调用FaceDetector 我们可以在Android平台上实现Bitmap多人脸识别(一张图中有多个人脸出现的话)。周五啦,我就简简单单写写,希望感兴趣的同学对这个深藏在Android SDK中的功能有所了解。

 

 

流程是这样的:

1. 读取一张图片至Bitmap (从Resource中,或是从手机相册中选取)

2. 使用FaceDetector API分析Bitmap,将探测到的人脸数据以FaceDetector.Face存储在一个Face list中;

3.将人脸框显示在图片上。

 

Step 1: 读取图片

从Drawable中读取图片资源

1

Bitmap sampleBmp=BitmapFactory.decodeResource(getResources(), R.drawable.sample1);

或者直接从手机的图片库读取(Album/Gallery)

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

private void readPictureFromAlbum()

    {

        Intent intent = new Intent();

        intent.setType("image/*");

        intent.setAction(Intent.ACTION_GET_CONTENT);

        startActivityForResult(Intent.createChooser(intent,

                "Select Picture"), ALBUM_REQUEST_CODE);

    }

 

    @Override

    protected void onActivityResult(int requestCode,int resultCode,Intent data){

        super.onActivityResult(requestCode, resultCode, data);

 

        if (requestCode == ALBUM_REQUEST_CODE && resultCode == RESULT_OK && null != data) {

            Uri selectedImage = data.getData();

            String[] filePathColumn = { MediaSt

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值