Android ICS API 14-摄像头。人脸识别
正在尝试使用Camera.face类中找到的Android 4 API 14人脸识别 我很难获得面部坐标值[左眼/右眼,嘴巴] im使用的设备是三星Galaxy Tab 2[GT-P5100]和安卓4.0.4 我正在初始化人脸检测,类似于下面的代码片段,在上述设备上运行时,camera.getParameters()的值返回为3 现在,当人脸被引入到曲面帧并在人脸检测侦听器中检测到时,它将返回人脸[0]中的值。rect.flattToString()标识人脸在曲面上的位置。但是,其余的值,即面部id、左眼/右眼和嘴巴分别返回为-1和Null 此行为在中描述为: 这是一个可选字段,可能不是所有设备都支持。如果不支持,该值将始终设置为null。可选字段作为一个集合受支持。要么它们都是有效的,要么没有一个是有效的 所以问题是我是否遗漏了什么,或者仅仅是我的设备无法支持Camera.face中的Android api人脸识别 值得一提的是,同一台设备提供了通过用户设置配置的face登录设备Android ICS API 14-摄像头。人脸识别,android,face-recognition,Android,Face Recognition,正在尝试使用Camera.face类中找到的Android 4 API 14人脸识别 我很难获得面部坐标值[左眼/右眼,嘴巴] im使用的设备是三星Galaxy Tab 2[GT-P5100]和安卓4.0.4 我正在初始化人脸检测,类似于下面的代码片段,在上述设备上运行时,camera.getParameters()的值返回为3 现在,当人脸被引入到曲面帧并在人脸检测侦听器中检测到时,它将返回人脸[0]中的值。rect.flattToString()标识人脸在曲面上的位置。但是,其余的值,即面部
FaceDetectionListener faceDetectionListener = new FaceDetectionListener(){
@Override
public void onFaceDetection(Face[] faces, Camera camera) {
if (faces.length == 0){
prompt.setText(" No Face Detected! ");
}else{
prompt.setText(String.valueOf(faces.length) + " Face Detected :) [ "
+ faces[0].rect.flattenToString()
+ "Coordinates : Left Eye - " + faces[0].leftEye + "]"
) ;
Log.i("TEST", "face coordinates = Rect :" + faces[0].rect.flattenToString());
Log.i("TEST", "face coordinates = Left eye : " + String.valueOf(faces[0].leftEye));
Log.i("TEST", "face coordinates = Right eye - " + String.valueOf(faces[0].rightEye));
Log.i("TEST", "face coordinates = Mouth - " + String.valueOf(faces[0].mouth));
}
在初始化代码中,需要为相机设置人脸检测侦听器 我不认为你遗漏了什么。您的设备可以进行人脸检测,但不支持API.Hay Christian的可选功能检测部分,只是为了清晰起见。该设备还提供人脸识别作为登录功能。您是否认为/建议设备制造商将使用不同的代码来提供此人脸识别功能,以与Android API中的相同?设备确实支持人脸识别,这就是为什么faces.rect中有一个值,但它不支持可选的人脸特征检测。@DblD您能解决此问题吗?您的意思是除了上面我已经用“camera.startFaceDetection();”设置的监听器之外,还有其他监听器?@DblD,您的代码示例中缺少这一行,
camera.setFaceDetectionListener(faceDetectionListener)
@Kratz,即使在执行了相同的建议之后。还有其他要点吗?
if (camera != null){
try {
camera.setPreviewDisplay(surfaceHolder);
camera.startPreview();
prompt.setText(String.valueOf(
"Max Face: " + camera.getParameters().getMaxNumDetectedFaces()));
camera.startFaceDetection();
previewing = true;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}