Blankj/AndroidUtilCode

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

Open

#1459 aperta il 22 feb 2021

Vedi su GitHub
 (1 commento) (0 reazioni) (1 assegnatario)Java (10.654 fork)batch import
help wanted

Metriche repository

Star
 (33.679 star)
Metriche merge PR
 (Nessuna PR mergiata in 30 g)

Descrizione

描述需求

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

Guida contributor