summaryrefslogtreecommitdiffstats
path: root/core/java/android/hardware
diff options
context:
space:
mode:
authorZhijun He <zhijunhe@google.com>2013-10-16 23:39:24 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-10-16 23:39:24 +0000
commit6355103bcae6f46105a53e2a8210c0b809980506 (patch)
tree084df9aafba2c2978e3e593313282149707e2680 /core/java/android/hardware
parent265a099c105ec600e52011862c2e49b748a860d0 (diff)
parent844b3520cc31dbca40f282e5a0e3e6d442d4c686 (diff)
downloadframeworks_base-6355103bcae6f46105a53e2a8210c0b809980506.zip
frameworks_base-6355103bcae6f46105a53e2a8210c0b809980506.tar.gz
frameworks_base-6355103bcae6f46105a53e2a8210c0b809980506.tar.bz2
Merge "Camera2: filter bad faces" into klp-dev
Diffstat (limited to 'core/java/android/hardware')
-rw-r--r--core/java/android/hardware/camera2/impl/CameraMetadataNative.java24
1 files changed, 17 insertions, 7 deletions
diff --git a/core/java/android/hardware/camera2/impl/CameraMetadataNative.java b/core/java/android/hardware/camera2/impl/CameraMetadataNative.java
index e42bdf5..072c5bb 100644
--- a/core/java/android/hardware/camera2/impl/CameraMetadataNative.java
+++ b/core/java/android/hardware/camera2/impl/CameraMetadataNative.java
@@ -518,21 +518,31 @@ public class CameraMetadataNative extends CameraMetadata implements Parcelable {
}
}
- Face[] faces = new Face[numFaces];
+ ArrayList<Face> faceList = new ArrayList<Face>();
if (faceDetectMode == CaptureResult.STATISTICS_FACE_DETECT_MODE_SIMPLE) {
for (int i = 0; i < numFaces; i++) {
- faces[i] = new Face(faceRectangles[i], faceScores[i]);
+ if (faceScores[i] <= Face.SCORE_MAX &&
+ faceScores[i] >= Face.SCORE_MIN) {
+ faceList.add(new Face(faceRectangles[i], faceScores[i]));
+ }
}
} else {
// CaptureResult.STATISTICS_FACE_DETECT_MODE_FULL
for (int i = 0; i < numFaces; i++) {
- Point leftEye = new Point(faceLandmarks[i*6], faceLandmarks[i*6+1]);
- Point rightEye = new Point(faceLandmarks[i*6+2], faceLandmarks[i*6+3]);
- Point mouth = new Point(faceLandmarks[i*6+4], faceLandmarks[i*6+5]);
- faces[i] = new Face(faceRectangles[i], faceScores[i], faceIds[i],
- leftEye, rightEye, mouth);
+ if (faceScores[i] <= Face.SCORE_MAX &&
+ faceScores[i] >= Face.SCORE_MIN &&
+ faceIds[i] >= 0) {
+ Point leftEye = new Point(faceLandmarks[i*6], faceLandmarks[i*6+1]);
+ Point rightEye = new Point(faceLandmarks[i*6+2], faceLandmarks[i*6+3]);
+ Point mouth = new Point(faceLandmarks[i*6+4], faceLandmarks[i*6+5]);
+ Face face = new Face(faceRectangles[i], faceScores[i], faceIds[i],
+ leftEye, rightEye, mouth);
+ faceList.add(face);
+ }
}
}
+ Face[] faces = new Face[faceList.size()];
+ faceList.toArray(faces);
return faces;
}