DEFINICIONES

Imagen

El término imagen monocroma o simplemente imagen, se refiere a una función bidimensional representando intensidad de luz, donde x e y son las coordenadas espaciales y el valor de f en cualquier punto (x,y) es proporcional al brillo (o nivel de gris) de la imagen en ese punto.

Imagen digital

Es una imagen que ha sido discretizada tanto en coordenadas espaciales como en brillo. Podemos considerar una imagen digital como una matriz cuyos índices de filas y columnas identifican un punto en la imagen y el correspondiente elemento de matriz identifica el valor de gris en ese punto.

Píxel

Acrónimo formado con las palabras inglesas 'Picture' 'element'. Es el elemento simple de una imagen digital.

El color en una imagen digital

Según la definición anterior, la función de imagen digital representa un valor de brillo en ese punto, pero cuando se quiere representar una imagen en color, esa interpretación puede cambiar. Por ejemplo, en función de la división de colores en un cubo RGB, podemos descomponer toda la imagen en tres bandas, cada una de ellas representando el brillo de rojo, de verde y de azul respectivamente. El color visualizado en un punto concreto será el resultante de combinar los valores de ese punto en las tres bandas, en la proporción indicada por esos valores. O bien se puede tener una tabla de colores (una paleta) y hacer que los valores de la imagen estén 'apuntando' a los colores de esa paleta. De cualquiera de las formas podemos distinguir: blanco y negro, escala de grises, color indexado 16, color indexado 256, color real RVA y color real CMAN. Los tipos de datos se diferencian por la resolución en bits (número de bits de información de la imagen por píxel) y por el número de canales que comprende la imagen. La resolución en bits determina cuántos colores o niveles de gris puede representar cada píxel.

Cada píxel de una imagen en blanco y negro es blanco o negro. Los tonos intermedios (grises) se crean ordenando los píxeles blancos y negros para simular gris. Es lo que se llama técnica de 'dithering'.

Cada píxel de una imagen en escala de grises puede ser uno de los 256 valores distintos de gris, del negro (cero) al blanco (255). Este tipo de datos muestra suaves cambios de tono utilizando tonos intermedios de gris. La resolución de una imagen en escala de grises determina el tamaño de los píxeles y, en consecuencia, el número de píxeles de una imagen. Cuanto mayor sea la resolución, los cambios de tono de gris serán más suaves y por tanto más exacta la representación de la imagen (las imágenes de alta resolución también utilizan más memoria).

En una imagen en color indexado, cada píxel puede ser uno de 16 o de 256 colores. Estos colores vienen especificados en la tabla de colores de la imagen. A cada píxel se le asigna un número que se refiere a un color de la tabla de colores. Los colores que no estén disponibles en la tabla se simulan por ordenamiento y por proximidad con respecto a los píxeles cuyos colores están disponibles. El tipo de datos de color indexado 16 es el usado por la pantalla VGA estándar en modo de 16 colores. El tipo de datos de color indexado 256 es el usado por la mayoría de las pantallas de 256 colores, incluida la IBM 8514/A, XGA y los adaptadores VGA estándar en modo de 256 colores con 320 x 200 píxeles y algunos adaptadores VGA especiales en modo de 256 colores.

En una imagen en color real RVA, cada píxel puede ser uno de los más de 16,7 millones de colores disponibles. El tipo de datos de color real RVA es actualmente el mejor tipo de datos para editar imágenes en color debido a que retiene mayor cantidad de información de la imagen.

Las imágenes en color real CMAN utilizan el mismo modelo de color que la impresión industrial: todos los colores se representan en porcentajes de cían, magenta, amarillo y negro. Puesto que hay cuatro colores en cada píxel, las imágenes en color real CMAN se llaman imágenes de 32 bits.


ELEMENTOS DE UN SISTEMA DE PROCESAMIENTO DIGITAL DE IMAGEN

Los componentes generales de un sistema de tratamiento digital de imagen se pueden organizar de la siguiente forma:

Digitalizador (unidad de entrada de datos)

Procesador (unidad de proceso de datos)

Pantalla (unidad de salida de datos)

Digitalizador

Es un dispositivo que convierte una imagen en una representación numérica (imagen digital). Existen multitud de aparatos que realizan esta función.

Procesador

Se entiende por tal un dispositivo capaz de realizar algún tipo de manipulación con imágenes digitales. Entran en esta categoría desde pequeños microprocesadores especializados hasta grandes ordenadores. Hay que indicar una parte muy importante y diferenciable del procesador es la memoria, o dispositivo físico en el que de alguna forma quedan almacenados los datos, tanto los introducidos por el digitalizador como los resultados de algún proceso.

Pantalla

la función de la pantalla es la inversa que la del digitalizador, esto es, convertir las matrices numéricas que representan imágenes digitales en alguna forma de representación discernible por el ser humano a través de los sentidos. Los principales dispositivos pantalla son: tubos de rayos catódicos y sistemas de impresión.


MEJORAMIENTO DE IMAGEN

INTRODUCCION

El principal objetivo de las técnicas de mejoramiento de imagen es procesar una imagen con el fin de hacerla más adecuada para una determinada aplicación o procesamiento posterior. Depende por tanto del problema específico a resolver el que se emplee una u otra técnica. Los métodos de mejora de imagen se pueden dividir en dos campos diferentes: métodos en el dominio frecuencial y métodos en el dominio espacial. Los primeros se basan en modificar la transformada de Fourier de la imagen, mientras que los segundos se basan en manipulaciones directas sobre los píxeles de la imagen.

TECNICAS DE MODIFICACION DEL HISTOGRAMA

Estas técnicas van principalmente enfocadas a mejorar la visualización de una imagen. El histograma de una imagen es un gráfico que ofrece una descripción global de la apariencia de la imagen. En el eje de abscisas se representa el rango de valores de píxeles de la imagen, mientras que en el eje de ordenadas se representa el rango de valores que pueden tomar esos píxeles. La expansión del contraste es una de estas técnicas. Consiste en que, dado un rango de valores de grises (NDmax - NDmin) menor que el rango disponible por nuestro dispositivo de visualización (NVmax - NVmin), estaremos perdiendo contraste (entendido este como relación entre los valores máximo y mínimo de una imagen). Visualmente es claro el efecto, al observar que no existe mucha diferencia entre los tonos más claros y más oscuros. Mediante distintas operaciones matemáticas podemos transformar esos valores de grises en otros con un rango mayor que se adapte plenamente a la capacidad del dispositivo de visualización:

Estiramiento lineal

Es la forma más sencilla de efectuar el contraste. Consiste en buscar una función lineal que ajuste tal que el rango NDmin a NDmax se transforme en NVmin a NVmax, por lo tanto NDmax = NVmax y NDmin = NVmin. El resto de valores ND serán transformados en otros según esa transformación lineal. De forma general se puede establecer:

donde a es un offset y b una ganancia. Y como conocemos los valores de dos puntos:

Por lo tanto los coeficientes de la transformación quedan:

O expresando la transformación en un sólo término:

Como caso particular de la transformación lineal, cabe destacar la transformación lineal por trozos, que aplica esta misma fórmula no a todo el rango de ND sino a un subrango determinado que queramos enfatizar especialmente; incluso se pueden aplicar diferentes estiramientos lineales, con diferentes coeficientes a distintos rangos de ND del histograma. Veamos un ejemplo práctico:


ESTIRAMIENTO LINEAL

Obsérvese cómo los valores de todos los píxeles se encuentran ahora en todo el rango de la tabla de color. La imagen se ve ahora con toda claridad. Nótese también el máximo en el valor 255 correspondiente al gran número de píxeles del fondo blanco.

El estiramiento lineal sólo tiene en cuenta como parámetros los valores máximo y mínimo del histograma original. Una técnica más depurada puede considerar también la forma de la distribución de frecuencias. Así, el NV de cada ND está en proporción no sólo a su valor sino también a su frecuencia, esto es, al número de píxeles con ese determinado valor. Aquellos ND con mayor número de píxeles serán los que proporcionalmente ocupen un mayor rango de visualización.

Imagen ecualizada e histograma de la misma:


ECUALIZACION DEL HISTOGRAMA

Obsérvese cómo los valores de los píxeles se intentan distribuir de forma uniforme en todo el rango 0-255. Como no es posible separar un valor cualquiera en dos diferentes, donde hay relativamente gran número de píxeles se separa del resto en proporción del número de píxeles de ese valor. El resultado visual es mucho más 'brusco'.


FILTRADO ESPACIAL

Filtrado espacial es la operación que se aplica a imágenes ráster para mejorar o suprimir detalles espaciales con el fin de mejorar la interpretación visual. Ejemplos comunes incluyen aplicar filtros para mejorar los detalles de bordes en imágenes, o para reducir o eliminar patrones de ruido. Filtrado espacial es una operación "local" en procesamiento de imagen en el sentido de que modifica el valor de cada píxel de acuerdo con los valores de los píxeles que lo rodean; se trata de transformar los ND originales de tal forma que se parezcan o diferencien más de los correspondientes a los píxeles cercanos.

Frecuencia espacial

Una característica común a todos los tipos de datos ráster es la llamada "frecuencia espacial", que define la magnitud de cambios de los datos por unidad de distancia en una determinada zona de la imagen. Areas de la imagen con pequeños cambios o con transiciones graduales en los valores de los datos se denominan áreas de bajas frecuencias (como por ejemplo la superficie de una masa de agua en reposo). Areas de grandes cambios o rápidas transiciones se conocen como áreas de altas frecuencias (por ejemplo suelo urbano con densas redes de carreteras). Así, los filtros espaciales se pueden dividir en tres categorías:

  1. Filtros pasa bajos
  2. Enfatizan las bajas frecuencias, suavizando las imágenes y suprimiendo ruidos. Se trata de asemejar el ND de cada píxel al ND de los píxeles vecinos, reduciendo la variabilidad espacial de la imagen. Ello produce un emborronamiento de los bordes, perdiéndose en nitidez visual de la imagen, pero ganando en homogeneidad.

    Ejemplo de un kernel de filtro pasa-bajo:

    Vemos que lo que se realiza es una media aritmética de los nueve píxeles que componen la ventana de filtrado, con lo que se reducen los espurios y la variabilidad de la imagen.

    (Pinchar para ver el ejemplo)

    Otro tipo de filtro pasa-bajo es el que aplica la mediana en vez de la media. Es el llamado filtro de mediana, y presenta la ventaja de que como medida estadística, la mediana es menos sensible a valores extremadamente desviados y se modifican menos los valores originales, ya que la mediana es en principio, uno de los valores concretos de la ventana de filtrado.

     (Pinchar para ver el ejemplo)

  3. Filtros pasa altos
  4. Enfatizan las altas frecuencias, para mejorar o afilar las características lineales como carreteras, fallas, o límites en general. Realizan por tanto el efecto contrario a los filtros pasa-bajos, eliminando estos las bajas frecuencias.

    Ejemplo de un kernel de filtro pasa-alto:

    Otra forma de obtener una imagen así filtrada es sustraer a la imagen original, la misma imagen filtrada paso-bajos. Es lógico ya que si a la imagen le restamos los componentes de baja frecuencia, nos quedaremos con las de alta frecuencia.

    (Pinchar para ver el ejemplo)

  5. Filtros detectores de bordes

Realizan otro tipo de operaciones con los datos, pero siempre con el resultado de enfatizar los bordes que rodean a un objeto en una imagen, para hacerlo más fácil de analizar. Estos filtros típicamente crean una imagen con fondo gris y líneas blancas y negras rodeando los bordes de los objetos y características de la imagen.

Emplea la diferenciación como método para calcular el grado de separación entre niveles de grises vecinos. Concretamente, y para realizar una diferenciación bidimensional, se efectúa la operación:

Este filtro implementa la siguiente operación:

donde:

Siendo Ai los píxeles de la ventana en las posiciones:

Este filtro calcula la segunda derivada, que a partir de la expresión del operador Laplaciano podemos aproximar:

Lo que es lo mismo que usar el kernel:

Seleccionando adecuadamente los valores del kernel, podemos obtener el efecto de extraer bordes en una determinada dirección, mientras que los bordes en el resto de direcciones no se ven tan resaltados.

(Pinchar para ver el ejemplo)

Cómo funcionan los kernels de convolución

El filtrado espacial se realiza trasladando una matriz rectangular de dos dimensiones (también llamada ventana) que contiene "pesos" o ponderaciones sobre la imagen en cada localización de píxel. Se evalúa el píxel central de la ventana de acuerdo con los píxeles de alrededor y sus valores de ponderación. Cuando un nuevo valor es así calculado, se desplaza la ventana sobre el siguiente píxel, realizando la misma operación. Este proceso de evaluar la vecindad ponderada del píxel se denomina "convolución bidimensional", y a la matriz de filtro se le conoce como "kernel de convolución".


FILTRADO EN FRECUENCIA

En el dominio frecuencial también puede realizarse el proceso de filtrado, con mayor grado de comprensión de lo que estamos viendo, ya que en una imagen en el dominio frecuencial se sabe dónde se encuentran los distintos rangos de frecuencias. De esta forma, en vez de realizar la convolución, se efectúa su operación correspondiente en el dominio frecuencial: el producto. Luego con la operación:

donde F(u,v) es la imagen en frecuencia, el único problema es la correcta especificación de H(u,v). Dependiendo del tipo de filtro que queramos aplicar:

Ejemplos de Filtros

(Pinchar para ver el ejemplo)

Vemos que los resultados son iguales que con el filtrado en el dominio espacial (convolución) pero en este caso estamos trabajando con otras variables y manejando conceptos diferentes.

Es destacable que, aunque en el ejemplo las líneas oblícuas del filtro hagan ver un filtro ideal (corte perfecto entre zona que pasa y zona que no pasa), esto en realidad no se usa nunca ya que produce un molesto efecto de anillamiento (un filtro de ese tipo no es realizable). Por ello se efectúa algún tipo de transición suavizada entre las dos zonas. Esa transición puede ser de tipo exponencial, trapezoidal, o butterworth, que no representan sino distintas modelizaciones de la transición suave.


FILTROS MORFOLOGICOS

Morfología matemática es un método no lineal de procesar imágenes digitales basándose en la forma. Su principal objetivo es la cuantificación de estructuras geométricas. Aquí los filtros también vienen definidos por su kernel, pero no es un kernel de convolución sino un elemento estructurante.

Dilatación

Este operador es comúnmente conocido como 'relleno', 'expansión' o 'crecimiento'. Puede ser usado para rellenar 'huecos' de tamaño igual o menor que el elemento estructurante con la que se opera la dilatación.

Usado con imágenes binarias, donde cada píxel es 1 ó 0, la dilatación es similar a la convolución. Sobre cada píxel de la imagen se superpone el origen del elemento estructurante. Si el píxel de la imagen no es cero, cada píxel que cae en la estructura es añadido al resultado aplicando el operador 'or'.

Con la notación:

representando la dilatación de una imagen A por un elemento estructurante B, se puede escribir:

Donde (A)b representa la traslación de A por b. Intuitivamente, para cada elemento no cero bi,j de B, A es trasladado i,j y sumado a C usando el operador 'or'. Por ejemplo:

0100

 

0110

0100

 

0110

0110

Å 11 =

0111

1000

 

1100

0000

 

0000

En este ejemplo, el origen del elemento estructurante está en el (0,0).

Usado con imágenes en escala de grises, la dilatación se efectúa tomando el máximo de una serie de sumas. Puede ser usado para implementar el operador de 'máxima vecindad' con la forma de la vecindad dada en el elemento estructurante.

Erosión

La erosión es lo opuesto a la dilatación; realiza con el fondo lo que la dilatación al primer plano. También en este caso, existe un elemento estructurante que se utiliza para operar con la imagen. Los efectos son de 'encogimiento', 'contracción', o 'reducción'. Puede ser utilizado para eliminar islas menores en tamaño que el elemento estructurante.

Sobre cada píxel de la imagen se superpone el origen del elemento estructurante. Si cada elemento no cero de dicho elemento está contenido en la imagen, entonces el píxel de salida es puesto a 1. Haciendo A Ä B como representación de la erosión de una imagen A por el elemento estructurante B, se como representación de la erosión de una imagen A por el elemento estructurante B, se puede definir:

donde (A)-b representa la traslación de A por b. B puede ser visto como una 'sonda' que se desliza a lo largo de toda la imagen A, testando la naturaleza espacial de A en cada punto. Si B trasladado i,j puede ser contenido en A (poniendo el origen de B en i,j), entonces i,j pertenece a la erosión de A por B. Por ejemplo:

0100

 

0000

0100

 

0000

1110

Ä 11 =

1100

1000

 

0000

0000

 

0000

En este ejemplo, el origen del elemento estructurante está en (0,0).

Usado en imágenes en escala de grises, la erosión se efectúa tomando el mínimo de una serie de diferencias. Puede ser usado para implementar el operador de 'mínima vecindad' con la forma de la 'vecindad' dada por el elemento estructurante.

Apertura (opening) y Cierre (closing)

La 'apertura' (opening) de una imagen B por un elemento estructurante K, se define como:

El 'cierre' (closing) de la imagen B por elemento estructurante K se define como:

El resultado de aplicar iterativamente dilataciones y erosiones es la eliminación del detalle específico en la imagen menor que el elemento estructurante, sin la distorsión geométrica global de características no suprimidas. Por ejemplo, 'abrir' una imagen con una estructura en disco, suaviza los contornos, rompe istmos y elimina pequeñas islas, picos y cabos. 'Cerrar' una imagen con un elemento estructurante en forma de disco, elimina pequeños agujeros y rellena brechas en los contornos.

Ejemplos de Filtros

(Pinchar para ver el ejemplo)


FILTROS DE TEXTURA

Muchas imágenes contienen regiones caracterizadas por variaciones del nivel de gris, más que por un valor único de grises. La 'textura' se refiere precisamente a la variación espacial del nivel de gris de una imagen como función de escala espacial. Para que los píxeles de una determinada área puedan ser definidos como texturalmente diferentes, sus niveles de gris deben ser más homogéneos como unidad que áreas de diferente textura.

De todas formas, el concepto de textura es bastante intuitivo. Es tan difícil definirlo como calcularlo. Mientras que el nivel de gris de un píxel está perfectamente definido y localizado, la textura es más elusiva. La definición que se ha dado es buena, pero a la vez vaga. De todas formas no hay ninguna mejor, y los filtros que se describen a continuación sirven de aproximación para trabajar con esta característica.

Filtro de recorrido

También llamados 'de rango'. Este filtro sustituye el valor central de la ventana de procesamiento por la diferencia entre el valor máximo y mínimo (el recorrido, estadísticamente hablando) de los píxeles contenidos en esa ventana. El recorrido será un valor pequeño para zonas 'planas' o texturalmente uniformes, y será alto en zonas de alta variabilidad. El tamaño de la ventana debe ser suficientemente grande como para incluir un número suficiente de puntos, según la escala a la que queramos trabajar, esto significa que debe ser mayor que el tamaño de cualquier pequeño detalle que pueda estar presente. El resultado es una imagen donde el valor de cada punto representa la textura, y diferentes regiones pueden ser distinguidas por diferentes niveles de gris.

Filtro RMS (Root-Mean-Square)

Este filtro de textura calcula primero la varianza de los valores de la ventana, y sustituye el valor central por el RMS de los píxeles de la ventana de proceso.

Operadores de momento

El primer y segundo momento son simples medidas de textura, utilizando los 'momentos' del histograma de la ventana de proceso. El primer momento es una medida del contraste de la ventana. El segundo momento es una medida de la homogeneidad de la misma. Las imágenes resultantes pueden ser escaladas para crear una imagen que discrimina entre varias texturas.


FUNDAMENTOS DEL COLOR

Aunque los procesos seguidos por el cerebro humano para percibir el color no están totalmente comprendidos, la naturaleza física del mismo puede ser expresada con bases formales soportadas por resultados teóricos y experimentales.

En 1666, Sir Isaac Newton descubrió que un haz de luz solar atravesando un prisma de cristal, se transformaba en un haz emergente de luz no blanca, sino consistente en un espectro continuo de colores que iban desde el violeta en un extremo, hasta el rojo en el extremo opuesto.

Básicamente, el color con el que percibimos un objeto viene determinado por la naturaleza de la luz reflejada por dicho objeto. Un cuerpo que refleja luz de forma uniforme en todo el rango del espectro visible (que es una estrecha banda del espectro electromagnético), aparece blanco al observador, mientras que si refleja más en algún rango estrecho del espectro visible, aparecerá al observador con ese color concreto. Por ejemplo, los objetos verdes reflejan luz con longitudes de onda principalmente en el rango de 500 a 570 mm (nanómetros), mientras que absorben la energía electromagnética en el resto de longitudes de onda del visible.

El rango de colores que podemos apreciar, son el resultado de mezclas de luz de diferentes longitudes de onda. Se ha comprobado que ciertas longitudes de onda del rojo (R), verde (V) y azul (A), cuando se combinan en diferentes proporciones (intensidades) producen mayor rango de colores que cualquier otra combinación de tres colores. Por ello, a esos tres colores se les denomina colores primarios. Aunque se ha malinterpretado que con esos tres colores se puede conseguir cualquier otro color, eso no es cierto. Ciertos colores no pueden ser obtenidos por mera combinación de RVA. Con propósitos de unificación, se han establecido las siguientes longitudes de onda concretas para los colores primarios: azul: 435.8 mm, verde: 546.1 mm y rojo: 700 mm.

Los colores primarios pueden combinarse para producir colores secundarios: magenta (azul + rojo), ciano (verde + azul) y amarillo (rojo + verde). Combinando los tres colores primarios, o un secundario con su correspondiente primario, en las proporciones adecuadas, se obtiene luz blanca.

También es importante distinguir entre colores primarios de luz y colores primarios de pigmentos o colorantes. En estos últimos, un color primario se define como aquel que resta o absorbe un color primario de luz y refleja o transmite los otros dos. Así, los colores primarios de pigmentos son el magenta, ciano y amarillo, mientras que los secundarios son rojo, azul y verde. Una combinación adecuada de los tres colores primarios de pigmentos, o de un primario con su secundario, dará lugar al negro.

Una forma de representar un sistema de colores de este tipo, es mediante un cubo de colores donde los ejes representan los colores primarios, y combinaciones de distintos valores de esos colores primarios dan el resto de colores (aunque ya he comentado antes que esto no es del todo cierto). El siguiente dibujo muestra un cubo de colores, representando los lugares donde se sitúan los colores más puros.


Representación en perspectiva del modelo 3D para el sistema de colores RVA

Pero este no es el único sistema en el que se puede representar el color. Existen otros como el de tono, saturación e intensidad (TSI), que se define de la siguiente forma: tono es el color, como 'rojo' o 'naranja'. Está directamente asociado con una longitud de onda concreta, y se mide en grados, de 0º a 360º. Saturación es una medida del grado de mezcla de ese tono con otros tonos de alrededor, y se mide en tanto por uno. Intensidad es precisamente eso, el grado de intensidad de ese color, y se mide de cero hasta infinito. Este sistema de color también se puede 'visualizar' de un manera gráfica, como muestra la siguiente figura:

Representación en perspectiva del modelo 3D para el sistema de colores TSI


CODIFICACION DE IMAGENES

La representación digital de una imagen, usualmente requiere enormes cantidades de recursos del sistema en forma de memoria. Es por ello que las técnicas de codificación son de una importancia tremenda, de cara a lograr la máxima eficiencia en este sentido.

Es de señalar, como en casi todas las técnicas, que el tratamiento concreto a realizar dependerá en gran medida de la aplicación a la que vaya dirigido. No es lo mismo almacenar una imagen para luego analizar hasta el nivel de cada píxel (como puede ocurrir en muchas aplicaciones de teledetección) que transmitir imagen de videoconferencia en tiempo real, donde no es tan importante la precisión.