2010-12-07 8 views
7

Ich möchte den onPreviewFrame verwenden, um das Bild vor dem Anzeigen für den Benutzer (d. H. Eine Farbtönung, Sepia, etc) zu verarbeiten. Soweit ich weiß, werden die an den Rückruf zurückgegebenen byte [] -Daten in YUV420sp codiert. Haben die Leute dies in Java in RGB oder mit NDK (nativem Code) dekodiert? Hat jemand ein Beispiel für eine Funktion, die dies zu RGB dekodiert und wie die RGB-Werte danach verwendet werden?Bildverarbeitung mit Android-Kamera

Danke.

Antwort

7

Ich habe eine Beispielanwendung gefunden, die das YUV420 in RGB umwandelt und Echtzeit-Histogramme über dem Vorschaubild anzeigt.

http://www.stanford.edu/class/ee368/Android/index.html

+1

Nizza Link, dank rgb. Ich betreibe es in einem virtuellen Android-Ziel, allerdings ist die YUV420-> RGB-Dekodierung wirklich langsam, obwohl es nur einfache Additionen/Multiplikationen/Klammern sind. Ist das etwas, das in meiner Debugging-Umgebung erwartet würde? (Ich bin ein komplettes noob! :) – Robert

+0

Ja, die Implementierung in diesem Code ist überhaupt nicht optimiert. Wenn ich so etwas in einer echten App machen würde, würde ich das Bit-Twiddling in nativem Code implementieren. – anelson