h1

Say HI to histogram

enero 11, 2010

Después de muchos días de parón vacacional y demás. He decidido ponerme las pilas porque sino no hay manera.

He estado mirando varias cosillas por ahí. Y he visto como obtener un histograma de los compenentes RGB de una imagen que represente la cantidad de estos. Pero aún me encuentro en proceso de entender el código. Ya que me es complicado entre las sentencias de java y las peculiaridades de las librerías específicas.

Una vez obtenido el histograma hay que dibujarlo. Este se guarda en un tipo Histrogram, de donde hay que obtener su parámetro bin. El cual si no me equivoco es un array de enteros [3][256]. Pero aún no se muy bien qué significan esos enteros.  Así que tendré que profundizar un poco mas. Aquí os dejo una capturilla de un histograma.

Por el camino. He visto como utilizar un interfaz para cargar ficheros y así utilizarlos como parámetro. Útil para hacer pruebecillas y tal. Se ha usado javax.swing.JFileChooser. Una capturilla.

Anuncios

2 comentarios

  1. Un histograma de color es un contador píxeles para cada intensidad (por canales de color).
    En su versión más completa se tiene (por cada canal) un array de 256 posibles intensidades, y se guarda el número de píxeles que tienen esa determinada intensidad (para el canal específico, R, G o B).
    En el caso que muestras, tienes efectivamente un almacen de [3][255] porque son 3 canales de color RGB y cada uno de ellos de valores comprendidos entre 0 y 255. En cada posición tienes un contador que dice el número de píxeles de la imagen que tiene ese determinado nivel de intensidad. Los 3 canales del histograma son totalmente independientes, por lo que sumarán el número total de píxeles de la imagen (cada uno de ellos).

    En casos más elaborados se toman “bins” de 5, 10 o el rango de intensidades que se desee y se contabiliza el número de píxeles con intensidad del canal de color escogido entre 0-5, 6-10, 11-15,… hasta 255 (si se toma un tamaño de bin de 5 niveles), de manera que se tienen las frecuencias (de aparición) de cada rango de intensidad que tiene la imagen de forma más “grosera”.

    Un análisis de histograma puede venir bien para describir globalmente la imagen en términos de color o localmente cierta región con determinadas características.

    Échale ahora un vistazo al código con un poco más de paciencia y seguro que lo entiendes.


    • Muchas gracias Antonio.

      La verdad es que ahora me ha quedado clarisimo después de tu explicación. Como se nota que eres profesor jeje. La idea es dividir la imagen en porciones y analizar esta mediante histograma ¿no? Así saber que canales abundan mas en unas regiones u otras.



Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: