IMAGEN
  OCULTA
  EN EL
  HISTOGRAMA


   Creado
   4 Oct 2007


   


© Guillermo Luijk 2007



IMAGEN OCULTA EN EL HISTOGRAMA

El siguiente artículo es tan curioso como inútil (o quizá no tanto?). Visitando foros me encontré con este blog cuyo autor se ha dedicado a hacer algo peculiar: darle la vuelta al concepto de histograma de una imagen de modo que la información útil y reconocible no esté en la imagen en sí, sino en el histograma que puede calcularse a partir de la misma.

Como me resultó divertido quise realizar mi propia prueba, y copié su idea del skyline de Nueva York. Basándome en esta foto dibujé una imagen en blanco y negro y escribí una rutina que la analizara generando una imagen en tonos de grises cuyo histograma fuera precisamente la imagen original.

La imagen resultante fue la siguiente:


Fig. 1 Imagen resultante en tonos de grises.


Puede comprobarse que el histograma de dicha imagen es el siguiente (si lo hacéis con Photoshop os saldrá achatado por las proporciones con que éste representa la gráfica):


Fig. 2 Histograma que contiene la imagen oculta.



MÉTODO PARA HACERLO

Antes de leer cómo se consigue esto sería bueno que tratárais de hacer el ejercicio de pensar cómo lo haríais vosotros. En realidad no hay más que tener claro el concepto de histograma de una imagen.

Un histograma no es sino la representación gráfica de una función consistente en el conteo estadístico de las luminosidades de los píxeles de la imagen. En el eje X se encuentran las amplitudes de dichas luminosidades, y en el eje Y se indican las frecuencias de aparición de cada una de ellas; o lo que es lo mismo el eje Y contiene el número de píxeles que hay en la imagen con cada uno de los niveles de luminosidad representados en el eje X.

A un mismo histograma le corresponden infinidad de posibles imágenes ya que el histograma no dice nada sobre la localización de los píxeles. Así cualquier imagen en la que intercambiemos de posición cualquier número de sus píxeles no va a sufrir ningún cambio en el histograma mientras no alteremos los niveles de los mismos.

Yo he elegido la manera más sencilla de obtener una de esas imágenes a las que corresponde el histograma en cuestión; se trata de una imagen en degradado de grises obtenida de la siguiente manera: analizamos una por una cada una de las 256 columnas de píxeles del histograma (el histograma tiene 256 píxeles de ancho porque así lo he forzado), que corresponderán a los niveles del rango 0..255. Y en cada una de ellas se cuenta el número de píxeles de alto tiene dicha columna del histograma. Hecho esto se dibujan tantos píxeles en la imagen destino como altura tuviera dicha columna, y con un tono de gris equivalente a tener en los 3 canales el nivel dado por la coordenada X del histograma.

Al resultado final se le añaden píxeles blancos hasta completar la última fila que con seguridad se nos habrá quedado a medio llenar. Cuando analicemos la imagen resultante encontraremos en ella tantos píxeles de cada tono de gris como indicaban las amplitudes del histograma.

Como puede imaginarse por la forma en que son representados los histogamas, el método solo sirve para codificar imágenes de tipo skyline, donde en la vertical de cada píxel dibujado en negro nunca podrá haber ninguno en blanco ya que un histograma no lo permite.


~~~


Si este contenido te ha resultado útil, considera realizar una contribución para asegurar la continuidad de esta web. Mantenerla supone un importante esfuerzo, así como un espacio y ancho de banda considerables en el servidor. Es una operación sencilla y totalmente segura.



gluijk@hotmail.com
  CURIOSIDADES

HOME