Obtenir RVB à partir d'une SurfaceView l'affichage Direct de la caméra
Je suis l'affichage d'une caméra en direct dans SurfaceView
à l'aide de camera.startPreview();
. Aucune idée sur comment je peux obtenir en direct RVB lectures de la caméra?
Grâce
- double possible de stackoverflow.com/questions/11761147/...
- Ses un doublon à cette question. Dans votre post, ils demandent un codage spécifique, où je demande à propos de n'importe quel codage à partir d'une SurfaceView. Pas besoin de bash à moi pour aucune raison.
- Qu'avez-vous essayé de nouveau ? Attendre que les gens à écrire du code pour vous. C'est pourquoi vous avez le downvote, je suppose. Je n'ai pas downvoted depuis sa déjà répondu.
Vous devez vous connecter pour publier un commentaire.
J'ai pensé que je pourrais obtenir les données converti à partir du
SurfaceView
. Mais la meilleure méthode à utiliser est :SurfaceView
.Élément de la liste
Alors, j'appelle le
setPreviewCallback
etonPreviewFrame
pour obtenir la trame entrante et de le convertir en RVB des pixels de la matrice. Qui je peux alors obtenir l'intensité de chaque couleur dans l'image en faisant la moyenne de tous les pixels d'intensité en cours d'exécution myPixels tableau par le biais d'unfor
boucle, et la vérification deColor.red(myPixels[i])
pour chaque couleur désirée (à l'intérieur de laonPreviewFrame
).Où
decodeYUV420SP
est trouvé ici.J'ai programmé cette opération prend environ 200ms pour chaque image. Est-il un moyen plus rapide de faire cela?
Vous pouvez faire la même chose comme ci-dessous
ici
camera.takePicture(shutterCallback, rawCallback, jpegCallback);
appel de méthode sur la capture d'image en temps , donc je pense que vous devez toujours faire appel de cette méthode tout en vous appareil photo est ouvert .onPictureTaken
? Si la conversion se produisent à l'intérieurcamera.setPreviewCallback(new PreviewCallback() { @Override public void onPreviewFrame(byte[] data, Camera camera) {
comme demandé voici un décodage rapide à l'aide de NDK ( moins de 10 ms sur rapide de l'appareil ):
premier ici est le natif de.h
native.cpp
code java