Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android

Respuesta
 
Herramientas
  #1  
Viejo 23/10/11, 19:59:13
Array

[xs_avatar]
Thatiro Thatiro no está en línea
Usuario novato en la web
 
Fecha de registro: oct 2011
Mensajes: 12
Tu operador: Movistar

Histogramas RGB

Hola a todos!!
Estoy haciendo una aplicación que coja la imagen directamente de la cámara y pueda detectar de que color es. Esto más o menos lo tengo pero, resulta que tengo que calcular los histogramas de las tres capas RGB y hasta hace poco lo hacía simple:
Código:
public void calculateHistograms()
    {
        int[] pix = new int[width * height];
        bmp.getPixels(pix, 0, width, 0, 0, width, height);
        for (int y = 0; y < height; y++) 
        {
            for (int x = 0; x < width; x++) 
            {
                int index = y * width + x;

                // int A =(pix[index] >> 24) & 0xff; //A
                int r = (pix[index] >> 16) & 0xff; // R
                int g = (pix[index] >> 8) & 0xff; // G
                int b = pix[index] & 0xff; // B

                histogramR[r]++;
                histogramG[g]++;
                histogramB[b]++;
            }
        }
Este código me llena los histogramas, creía que bien, pero creo que me devuelve valores muy dispersos y además distancias parecidas los unos de otros, del estilo:
Código:
[0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 345, 0, 0, 0, 0, 0, 0, 0, 0, 287, 0, 0, 0, 0, 0, 0, 0, 372, 0, 0, 0, 0, 0, 0, 0, 659, 0, 0, 0, 0, 0, 0, 0, 780, 0, 0, 0, 0, 0, 0, 0, 0, 953, 0, 0, 0, 0, 0, 0, 0, 975, 0, 0, 0, 0, 0, 0, 0, 953, 0, 0, 0, 0, 0, 0, 0, 952, 0, 0, 0, 0, 0, 0, 0, 0, 1000, 0, 0, 0, 0, 0, 0, 0, 1262, 0, 0, 0, 0, 0, 0, 0, 1538, 0, 0, 0, 0, 0, 0, 0, 1626, 0, 0, 0, 0, 0, 0, 0, 0, 1430, 0, 0, 0, 0, 0, 0, 0, 1613, 0, 0, 0, 0, 0, 0, 0, 2096, 0, 0, 0, 0, 0, 0, 0, 1531, 0, 0, 0, 0, 0, 0, 0, 0, 544, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
No se si esto es normal, o hago algo raro ya que me gustaría que el histograma fuese más "continuo" y no tan disperso.

Gracias!!!
Responder Con Cita


  #2  
Viejo 24/10/11, 11:06:31
Array

[xs_avatar]
pmaicas pmaicas no está en línea
Desarrollador
 
Fecha de registro: dic 2008
Mensajes: 1,299

Yo el código lo veo bien. En cuanto al resultado, será que la imagen no tiene 8 bits de resolucion por color, si por ejemplo cada color tiene una resolucion de 5 bits el resultado sería ese que te da.
__________________
Saludos
-Pedro-
http://www.maicas.net/ (desarrollo de software)
http://droid.maicas.net/ (solo android)
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 09:34:49 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /