Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6355103b authored by Zhijun He's avatar Zhijun He Committed by Android (Google) Code Review
Browse files

Merge "Camera2: filter bad faces" into klp-dev

parents 265a099c 844b3520
Loading
Loading
Loading
Loading
+17 −7
Original line number Original line Diff line number Diff line
@@ -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) {
        if (faceDetectMode == CaptureResult.STATISTICS_FACE_DETECT_MODE_SIMPLE) {
            for (int i = 0; i < numFaces; i++) {
            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 {
        } else {
            // CaptureResult.STATISTICS_FACE_DETECT_MODE_FULL
            // CaptureResult.STATISTICS_FACE_DETECT_MODE_FULL
            for (int i = 0; i < numFaces; i++) {
            for (int i = 0; i < numFaces; i++) {
                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 leftEye = new Point(faceLandmarks[i*6], faceLandmarks[i*6+1]);
                    Point rightEye = new Point(faceLandmarks[i*6+2], faceLandmarks[i*6+3]);
                    Point rightEye = new Point(faceLandmarks[i*6+2], faceLandmarks[i*6+3]);
                    Point mouth = new Point(faceLandmarks[i*6+4], faceLandmarks[i*6+5]);
                    Point mouth = new Point(faceLandmarks[i*6+4], faceLandmarks[i*6+5]);
                faces[i] = new Face(faceRectangles[i], faceScores[i], faceIds[i],
                    Face face = new Face(faceRectangles[i], faceScores[i], faceIds[i],
                            leftEye, rightEye, mouth);
                            leftEye, rightEye, mouth);
                    faceList.add(face);
                }
            }
            }
        }
        }
        Face[] faces = new Face[faceList.size()];
        faceList.toArray(faces);
        return faces;
        return faces;
    }
    }