Home Menu

Menu



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


 
Herramientas
  #1  
Viejo 23/10/11, 19:59:13
Avatar de Thatiro
Thatiro Thatiro no está en línea
Usuario novato en la web
Mensajes: 12
 
Fecha de registro: oct 2011
Mensajes: 12
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
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
Avatar de pmaicas
pmaicas pmaicas no está en línea
Desarrollador
Mensajes: 1,299
 
Fecha de registro: dic 2008
Mensajes: 1,299
Mencionado: 25 comentarios
Tagged: 0 hilos
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.
Responder Con Cita
Respuesta

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

Herramientas

Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 15:52:54 (GMT +2)

Cookies
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007