Blankj/AndroidUtilCode

希望能增加一个人脸识别工具类

Open

#1,459 创建于 2021年2月22日

在 GitHub 查看
 (1 评论) (0 反应) (1 负责人)Java (10,654 fork)batch import
help wanted

仓库指标

Star
 (33,679 star)
PR 合并指标
 (30 天内没有已合并 PR)

描述

描述需求

利用Android自带的FaceDetector就可以实现一个简单的人脸识别,反正没有三方依赖,为什么不加呢?

可借鉴的

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.media.FaceDetector;

import java.io.ByteArrayOutputStream;

/**
 * 利用Android原生的FaceDetector进行人脸识别
 */
public class FaceDetectUtil {
    /**
     * 判断该图片中是否有且只有一个人脸
     */
    public static boolean hasOneFace(Bitmap bitmap) {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
        byte[] data = baos.toByteArray();
        BitmapFactory.Options options = new BitmapFactory.Options();
        options.inPreferredConfig = Bitmap.Config.RGB_565;  //构造位图生成的参数,必须为565。类名+enum
        Bitmap myBitmap = BitmapFactory.decodeByteArray(data, 0, data.length, options);
        int maxFaces = 2;
        FaceDetector.Face[] myFace = new FaceDetector.Face[maxFaces];       //分配人脸数组空间
        FaceDetector myFaceDetect = new FaceDetector(myBitmap.getWidth(), myBitmap.getHeight(), maxFaces);
        int count = myFaceDetect.findFaces(myBitmap, myFace);    //FaceDetector 构造实例并解析人脸
        return count == 1;
    }
}

贡献者指南