El concepto de imagen es más complejo de lo que puede pensar la mayoría. Una imagen es un conjunto ordenado de datos que, a priori, son del mismo tipo. Habitualmente se entiende que una imagen es un conjunto de colores que representan de forma gráfica del entorno. Esto es cierto pero es poco general, ya que en tal caso las imágenes de profundidad, o las térmicas, no entrarían en esta definición.

En mi opinión, una definición más precisa sería que una imagen es un conjunto ordenado de datos de similar tipología. Luego, podríamos complementar esta definición diciendo que una imagen es una representación visual de un conjunto de datos. Esta segunda definición estaría más enfocada a la visualización que hacemos en la pantalla del ordenador, móvil o cualquier dispositivo.

Tipos de imagen

Como hemos introducido antes, una imagen puede definirse como un conjunto de píxeles que representan un elemento del mundo real. Sin embargo, esta representación puede ser de distinto tipo, como el color, la profundidad, la temperatura, etc. Por ejemplo, podemos decir que la siguiente figura es una imagen, concretamente una imagen de color:

Sí, esto soy yo 😁

Imagen de color

Si prestamos atención a una región de esta imagen, veremos que los valores de cada pixel están en un rango de 0 a 255 por pertenecer al espacio de color RGB, el cual se caracteriza por formar toda la gama de colores al combinar Rojo (R de Red), Verde (G de Green) y Azul (B de Blue). A continuación, vemos que valor tienen los píxeles para la región marcada con el cuadrado rojo de la imagen anterior.

ATENCIÓN: las matrices de la derecha están coloreadas para que visualmente se sepa que pertenecen al canal Red, Green y Blue, pero hay que tener claro que si se visualizan de forma independiente en un visualizador, estas saldrán en escala de grises. Esto es debido a que los software de visualización de imágenes no interpretan un color a no ser que se les de información de los tres canales de color simultáneamente.

En este caso, la imagen SÍ es una matriz de alto x ancho x canales, donde el alto y ancho corresponde al número de píxeles (6000 x 4000 píxeles en este caso), y canales se refiere al número de canales de color que en este caso son R, G y B, es decir, 3 canales. Existen otros espacios de color, como el HSI/HSV o Lab, pero ahora nos centramos en el RGB. Este tipo de imágenes son las más habituales ya que son las que obtenemos de una cámara de fotos, de un móvil o de una webcam.

Sin embargo, este no es el único tipo de imagen que podemos obtener como vamos a ver en las siguientes secciones.

Imagen térmica

Todos hemos visto en la televisión imágenes tomadas con dispositivos especiales que permiten ver por la noche. Muchos de estos dispositivos toman información térmica en lugar de imágenes de color. Un ejemplo de imagen térmica podría ser la siguiente:

Zaereth, CC0, via Wikimedia Commons

En este caso, cada píxel de la imagen no tiene un valor entre 0 y 255 como el caso anterior, sino que están entre 71 y 347 grados Fahrenheit. Obviamente, este rango es específico de la temperatura que había en la escena donde se tomó la imagen, pero aquí el rango de valores puede ser cualquier temperatura que podamos medir.

Como vemos, en este caso la imagen no es un conjunto de píxeles de colores, ya que aquí los datos de cada píxeles corresponden con valores de temperatura. Sí que es cierto que, para poder representar esta imagen térmica en un monitor, móvil u otro dispositivo, es necesario convertirla a valores RGB puesto que estos son los que se necesitan para visualizar algo por pantalla. Este proceso de conversión asigna un color a cada valor de la imagen, como es el caso de la imagen anterior donde el color azul corresponde con las regiones de menor temperatura y las rojas las de mayor temperatura.

Imagen de profundidad

Otro tipo distinto de imagen es la que tiene información de profundidad. En éstas, cada píxel indica la distancia del sensor al elemento que hay en ese píxel. Por ejemplo, las famosas Kinects de Microsoft proporcionan una imagen de color y una imagen de profundidad de la misma zona y son comúnmente llamadas RGBD o RGB-D, de inglés Red-Green-Blue-Depth. La imagen de profundidad suele tener el mismo tamaño que la de color, por lo tanto, la imagen completa RGB-D será de alto x ancho x canales color + canal depth.

Imagen médica de rayos X

Un tipo de imagen que es ampliamente utilizado es el de los datos médicos. Existen numerosas modalidades de adquisición de imágenes médicas, donde las más comunes son la Resonancia Magnética (MRI del inglés Magnetic Resonance Imaging), la Tomografía Axial Computarizada (CT del inglés Computed Tomography), la Ecografía o Ultrasound en inglés, y las nucleares. Sin meternos en detalle en cada una de estas tipologías de imagen, sí podemos decir que el tipo de dato es muy diferente al de las imágenes nombradas anteriormente, e incluso entre cada tipo de imagen médica.

Por poner un ejemplo específico que nos sirva para este post de definición genérica de imagen, las imágenes CT tienen como dato de salida unidades Hounsfield. Estas unidades describen la radiodensidad, que se definen como:

donde µagua y µaire son el coeficiente linear de atenuación del agua y el aire, y µ es el coeficiente del tejido concreto de la imagen. Todo esto resulta en un valor que está entre -1000hu representando el aire y +2000hu representando hueso u otros objetos metálicos [Wikipedia: https://es.wikipedia.org/wiki/Escala_Hounsfield].

Fig. 1, imagen CT: https://barre.dev/medical/samples/
Fig. 2, detalle del cuadro superior izquierdo rojo
Fig. 3, detalle del cuadro central naranja

Como vemos en el ejemplo de la imagen CT, en la misma imagen tenemos valores negativos de hasta -120hu (Figura 2) hasta otros de más de 300hu en la Figura 3.

Imagen de máscara de segmentación

Por último, y para rizar más el rizo, podríamos hablar de una máscara de segmentación también es una imagen. Como resumen, segmentar una imagen es dividirla en grupos de píxeles que comparten una característica en común, ya sea por el color que tienen, o por el significado semántico que tenga (persona, silla, coche…).

Una máscara es una imagen del mismo tamaño que la imagen original, donde cada píxel tiene como valor un identificador del grupo al que perteneces ese píxel. Estos identificadores o etiquetas pueden ser números, letras o cualquier otro elemento. Además, podemos tener en una misma máscara varias etiquetas para el mismo píxel, cada una de ellas perteneciente a distintas características (color, semántica, instancia, tipo de tejido en imagen médica, etc.).

Imagen original
Máscara piel
Máscara persona
Máscara ropa
Detalle máscara ropa

En el conjunto de figuras anterior podemos ver algunos ejemplos de máscaras de segmentación. A la izquierda tenemos la imagen original, de la cual queremos indicar qué píxeles pertenecen a una case u otra. Por ejemplo, en la máscara de piel vemos que en amarillo tenemos marcados los píxeles que pertenecen a la piel de la persona. Sin embargo, en la máscara de persona tenemos todos los píxeles en amarillo indicando la persona, tanto la piel como la ropa. En la máscara de ropa vemos que hay varias etiquetas o identificadores de clase, que además se detallan en la imagen inferior derecha. Aquí vemos como la etiqueta «1» sería la chaqueta, la etiqueta «2» sería el pantalón, la etiqueta «3» sería la camisa y por último la etiqueta «0» sería el fondo.

Por lo tanto, en este caso, una imagen podría ser un conjunto de etiqueta indicándonos un elemento de la imagen según un significado, ya sea ser piel, ser persona, o qué prenda de ropa tenemos.

Definición de imagen

Como hemos estado viendo, una imagen puede tener diferente tipo de información y que esta tenga un rango diferente, desde 0 a 255 si hablamos de una imagen RGB, hasta valores negativos y positivos si hablamos de temperatura. Además, el tamaño de la imagen puede ser que incluya múltiples canales (3 en el caso de RGB, pero 4 si es RGB-D). Por lo tanto, una definición general de imagen debería contener o incluir a todos estos tipos.

Por lo tanto, una imagen es un conjunto ordenado de datos de la misma tipología que representan un objeto (u objetos) del mundo real. Además, como anexo a esta definición, también debe aclararse que una imagen es una representación visual del mundo real, por ello, para poder hacer esa visualización en una pantalla los datos originales de la imagen, estos deben ser convertidos al rango de datos que los programas de visualización son capaces de reproducir.

Esta última definición de visualización se refiere a que si queremos reproducir una imagen CT de unidades Hounsfield que está en el rango [-1000 y +3000), ha de convertirse al rango [0, 255] perteneciente al espacio de color RGB para que los programas puedan representar sobre una pantalla dicha imagen CT.