Blankj/AndroidUtilCode

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

Open

#1.459 aberto em 22 de fev. de 2021

Ver no GitHub
 (1 comment) (0 reactions) (1 assignee)Java (10.654 forks)batch import
help wanted

Métricas do repositório

Stars
 (33.679 stars)
Métricas de merge de PR
 (Nenhuma PRs mesclada em 30d)

Description

描述需求

利用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;
    }
}

Guia do colaborador