2010-12-07 3 views
7

Je souhaite utiliser l'onPreviewFrame pour post-traiter l'image avant de l'afficher à l'utilisateur (c'est-à-dire appliquer une teinte de couleur, une sépia, etc.). Si je comprends bien, les données byte [] renvoyées au callback sont codées en YUV420sp. Est-ce que les gens ont décodé cela en RGB Java ou en utilisant NDK (code natif)? Quelqu'un at-il un exemple d'une fonction qui décode cela en RGB et comment les valeurs RVB sont utilisées par la suite?Traitement d'image avec l'appareil photo Android

Merci.

Répondre

7

J'ai trouvé un exemple d'application qui traduit le YUV420 en RVB et affiche (en quelque sorte) des histogrammes en temps réel sur l'image d'aperçu.

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

+1

lien Nice, merci. Je l'utilise dans une cible virtuelle Android, mais le décodage YUV420-> RGB est TRÈS lent, même s'il ne s'agit que de simples ajouts/multiplications/bridages. Est-ce quelque chose qui serait attendu dans mon environnement de débogage? (Je suis un noob complet! :) – Robert

+0

Oui, l'implémentation dans ce code n'est pas optimisée du tout. Si je faisais ce genre de chose dans une vraie application, j'implémenterais le bit-twiddling en code natif. – anelson

Questions connexes