2011-11-12 17 views
7

che attualmente si sta imbarcando in un progetto relativo alle telecamere Android che mi richiederebbero di rilevare determinati colori durante l'anteprima dal vivo o dopo lo scatto della foto.Rilevamento del colore con la videocamera Android

Sono riuscito a impostare correttamente la fotocamera con anteprima dal vivo e tutto, ma attualmente sono bloccato a rilevare i colori. Ad esempio, vorrei rilevare il colore verde durante l'anteprima dal vivo della telecamera e inviare un feedback all'utente. Non deve necessariamente essere fatto durante l'anteprima dal vivo, poiché stavo pensando che scattare una foto, quindi eseguire il rilevamento del colore potrebbe essere realizzato in un modo più semplice.

Sono un principiante assoluto sulla programmazione Android, quindi qualsiasi tipo di direzione su come codificare l'algoritmo di rilevamento del colore sarebbe molto apprezzato!

risposta

1

Se si vuole andare per il metodo di semplice quindi ottenere un'immagine bitmap da fotocamera e utilizzare bitmap.getpixel(int x,int y) per ottenere il colore e confrontare i pixel con il colore che si desidera

0

"Colore Grab" è un'applicazione Android che fa quello hai bisogno. L'app ha il miglior algoritmo di rilevamento/riconoscimento del colore e funziona perfettamente. Puoi controllare come funziona.

Color Grab on Google Play

0

Si dovrebbe provare questo, dove x e y è la posizione di pixel

int frameHeight = camera.getParameters().getPreviewSize().height; 
int frameWidth = camera.getParameters().getPreviewSize().width; 
int rgb[] = new int[frameWidth * frameHeight]; 
decodeYUV420SP(rgb, data, frameWidth, frameHeight); 
Bitmap bmp = Bitmap.createBitmap(rgb, frameWidth, frameHeight, Config.ARGB_8888); 
int pixel = bmp.getPixel(x,y); 
int redValue = Color.red(pixel); 
int blueValue = Color.blue(pixel); 
int greenValue = Color.green(pixel); 
int thiscolor = Color.rgb(redValue, greenValue, blueValue); 
Problemi correlati