这是我的code on gist
此相机应用遵循Android Official Guide
我的设备是带有kikat 4.4.2的Nexus 5
@Override
public void onFaceDetection(Camera.Face[] faces, Camera camera) {
if (faces.length > 0){
Camera.Face f = faces[0];
Log.v(TAG, ("Detected" + faces.length + "faces,the ID of first face is:" + f.id ));
Log.v(TAG, "leftEye : " + f.leftEye);
Log.v(TAG, "mouth : " + f.mouth);
Log.v(TAG, "rect : " + f.rect);
Log.v(TAG, "rightEye: " + f.rightEye);
mCamera.stopFaceDetection();
}
}
检测到人脸时代码上方的输出是:
Detected 1 faces,the ID of first face is:-1
FaceActivity﹕ leftEye : null
FaceActivity﹕ mouth : null
FaceActivity﹕ rect : Rect(-393, 356 - -213, 676)
FaceActivity﹕ rightEye: null
所以,我想知道我的Nexus 5是否支持FaceDetect?如果没有,它怎么能用Face Unlock实现Screen Lock?
答案 0 :(得分:1)
我发现了这个问题的原因。这都是关于RGB_564
的。 Android有一个API来识别人脸,但只支持RGB_564
个位图。人脸检测是一项成本非常高的行动。因此,默认情况下,相机的FaceDetect功能仅识别基本面部信息,这就是face.leftEye
为空的原因。