Ich versuche Frame-Image zu verarbeiten, während ich die neue Android-Gesichtserkennung Mobile Vision API verwende.
Ich habe also Custom Detector erstellt, um Frame zu erhalten, und habe versucht, getBitmap () -Methode aufzurufen, aber es ist null, so dass ich auf Graustufendaten des Frames zugegriffen habe. Gibt es eine Möglichkeit, eine Bitmap daraus oder eine ähnliche Bildhalterklasse zu erstellen?
%Vor%Sie haben das wahrscheinlich schon erledigt, aber für den Fall, dass jemand in Zukunft auf diese Frage stößt, habe ich es so gelöst:
Wie @ pm033464 hervorhebt, ist das Standardbildformat, das aus android.hardware.Camera
stammt, NV21, und das ist das von CameraSource .
Diese Stackoverflow-Antwort liefert die Antwort:
%Vor% Obwohl frame.getGrayscaleImageData()
darauf hinweist, dass bitmap
eine Graustufenversion des Originalbildes sein wird, ist dies meiner Erfahrung nach nicht der Fall. Tatsächlich ist die Bitmap identisch mit der, die nativ an die SurfaceHolder
geliefert wird.
Fügen Sie einfach ein paar Extras hinzu, um eine Box mit 300px auf jeder Seite für den Erkennungsbereich einzurichten. Übrigens, wenn Sie nicht die Höhe und Breite des Frames in getGrayscaleImageData () aus den Metadaten einfügen, erhalten Sie merkwürdig beschädigte Bitmaps.
%Vor%Tags und Links android bitmap android-vision google-vision grayscale