Ich habe den Standard com.google.android.gms.vision.Tracker example erfolgreich auf meinem Android-Gerät ausgeführt und jetzt muss ich das Bild nachbearbeiten, um die Iris des aktuellen Gesichtes zu finden, die in den Ereignismethoden der angezeigt wurde Tracker.Wie bekomme ich den aktuellen Frame (als Bitmap) für den Android-Facedetector in einem Tracker-Event?
Also, wie bekomme ich den Bitmap-Rahmen, der genau der com.google.android.gms.vision.face.Face entspricht, die ich in den Tracker-Events erhalten habe? Dies bedeutet auch, dass die endgültige Bitmap mit der Webcam-Auflösung und nicht mit der Bildschirmauflösung übereinstimmen sollte.
Eine schlechte Alternative ist, alle paar ms auf meiner CameraSource takePicture aufzurufen und dieses Bild mit dem FaceDetector separat zu bearbeiten. Obwohl dies funktioniert, habe ich das Problem, dass der Video-Stream während des Aufnehmens einfriert und ich eine Menge von GC_FOR_ALLOC-Nachrichten wegen des einzelnen bmp-Gesichtsdetektor-Speicherabfalls bekomme.
Was Sie suchen, scheint bei 'FaceDetector.SparseArray Detect (Frame var1)' verfügbar sein. Sobald Sie ein Frame-Objekt halten, haben Sie getBitmap(), was sehr vielversprechend klingt. Leider ist diese Klasse endgültig, was bedeutet, dass das Abfangen von Frames durch Reflexion möglich sein sollte. –
Fabio
Ich bin mir nicht sicher, ob ich bekomme, was Sie vorschlagen. Habe ich recht, dass Sie davon ausgehen, dass ich ein Frame-Objekt zur Hand habe? Denn das ist das Problem, vor dem ich stehe. Ich habe ein erkanntes Gesichtsobjekt ohne den aktuellen Rahmen und ich brauche den Rahmen, der einem bestimmten Gesichtsobjekt entspricht. Zum Beispiel hat der Link in meiner Frage eine Methode onUpdate() am unteren Rand. Wie kann ich mit dieser Methode den aktuellen Frame erhalten, der dem Face-Argument der Methode entspricht? –
Wir haben keinen Zugriff auf einen Frame, es sei denn, Sie haben alle Methoden in FaceDetector und die Intercept Detect-Methode eingeschlossen (Reflektion hilft anscheinend nicht, weil sie endgültig ist). Speichern Sie den Frame und erstellen Sie einen Getter, und rufen Sie ihn an anderen Stellen im richtigen Moment auf. – Fabio