Wie erstelle ich ein Bitmap aus einem Graustufen-Byte-Buffer-Image?

8

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%     
rcmalli 05.09.2015, 10:49
quelle

2 Antworten

11

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.

    
Gabriel 10.10.2015 14:19
quelle
0

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%     
Doug 02.03.2017 11:40
quelle