Tema 4. Operaciones de procesado de imagen.

Recordaremos para comenzar este apartado que hemos llamado procesado a cualquier operación efectuada sobre cualquier imagen que produce la transformación de la misma en otra nueva, por lo general con la intención de llevar a cabo un análisis posterior. Por su importancia, destacaremos a continuación como operaciones de procesado la segmentación, binarización y aplicación de filtros.

4.1 Segmentación.

Como ya se ha visto en el Tema 2, la segmentación es una operación que se efectua habitualmente en análisis de imagen y cuyo objetivo es poder llegar a distinguir los objetos del fondo. No se trata de una acción trivial, todo lo contrario, tiene una gran importancia para operaciones posteriores con las imágenes y requiere una serie de pasos de manipulación que generarán una nueva imagen. Esta serie de pasos se inicia por lo general con la binarización de la imagen.

 

4.2 Binarización.

La segmentación se apoya técnicamente en la binarización, ya definida con anterioridad (ver tema 2). Se trata del proceso por el que se pasa de una imágen cromática o monocromática a una imagen binaria, mediante la conversión de pixels con un nivel de gris comprendido entre 0 y 255 para imágenes monocromáticas (entre 0 y 255 para la intensidad de cada uno de los colores básicos en una imagen cromática), en pixels de valores 0 ó 1. Para ello debe fijarse un criterio de conversión, la llamada regla de binarización, basada en un intervalo crítico de tonos de gris. Cuando nos movamos dentro del intervalo, los valores serán pasados a 1, fuera de éste, serán pasados a 0.

 

4.3 Filtros.

Otro punto importante a tratar es el hecho de que las imágenes, una vez salen del dispositivo de captación, no suelen permitir una segmentación fácil. Ello puede suceder por diferentes motivos. Por ejemplo, la existencia de ruido de fondo, que nos hace confundir manchas con objetos. Otras veces, por la existencia de unos márgenes difusos en los objetos. En otras ocasiones por existir un contacto entre objetos.

Por todos estos motivos, a menudo es necesario procesar la imagen mediante filtros antes de someterla a binarización. El procedimiento se basa en la aplicación de operaciones aritméticas que producen cambios en la intensidad de luz en cada punto, en función del valor de los pixels adyacentes. Así, un filtro provocaría cambios dependientes del entorno de los puntos.

Hay distintos filtros y cada uno de ellos consigue un efecto particular sobre las imágenes. Las operaciones de transformación de los valores de intensidad de cada filtro queda descrita por su kernel. El kernel es una matriz de números que son los coeficientes por los que debe multiplicarse los valores de intensidad del entorno de cada punto, del modo que se indica a continuación en un ejemplo de tamaño 3x3 (Fig. 4.1):

(Fig. 4.1)

Tras la aplicación del filtro, cada uno de los valores antiguos de los pixels (g0) ha sido sustituido por un nuevo valor (g'0).


Existen varias clases generales de filtros definidos atendiendo a los efectos que se consiguen al aplicarlos. Es el caso de los filtros de suavizado, de enfatizado, o de erosión-dilatación.

(Fig. 4.2)

Filtros de suavizado

Estos filtros, también llamados de paso bajo ( Low Pass), se emplean para reducir el ruido de fondo de las imágenes. El ruido de fondo de una imagen está constituido por todos los elementos que, no siendo objetos, pueden ser confundidos con ellos.

Uno de los filtros de suavizado más usados es el de mediana. En la figura 4.2 se muestra un ejemplo de aplicación de éste tipo de filtro. Los nuevos valores g0' se obtienen calculando la mediana de los valores marginales (g1-g8). Para ello tenemos que ordenar los valores g1-g8 e igualar g0' al quinto valor de la secuencia. Con este proceso vamos a suprimir en la imagen las diferencias bruscas de intensidad, tomando ésta un aspecto más homogéneo debido a que el valor absoluto de la diferencia entre un pixel y cualquiera que le rodea habrá disminuido. En este caso como en cualquier otro, el filtro puede aplicarse repetidamente hasta conseguir el efecto deseado (aquí la desaparición o minimización del ruido de fondo).

Filtros de enfatizado

Estos filtros, también llamados de paso alto (High Pass), se usan cuando en la imagen aparecen objetos con márgenes difusos a causa de una falta de contraste. Tras la aplicación del filtro, el margen de los objetos aumenta su contraste respecto al fondo y la segmentación es más fácil. Un ejemplo de filtro de este tipo es el que en Visilog recibe el nombre de "high". Su kernel aparece en la figura 4.2.

El efecto de enfatizado de high es escaso frente al de otros filtros más potentes. Por ejemplo, para conseguir altos grados de contraste se usan a menudo los filtros de convolución y laplacianos, disponibles también en el programa.

 

Filtros de erosión-dilatación

Estos filtros son conocidos también con el nombre de filtros de morfología matemática. Su utilización persigue muchas veces la eliminación del contacto entre objetos. Ello se consigue tras una operación consecutiva de erosión y dilatación, que son dos procesos que explicaremos a continuación.

La erosión, es el resultado de la aplicación de la llamada regla de erosión: un pixel "blanco" (generalmente de objeto) pasa a "negro" si en su entorno inmediato existe al menos un pixel "negro". Evidentemente la erosión produce una disminución del tamaño de los objetos por pérdida de pixels marginales.

La dilatación, es el resultado de la aplicación de la regla de dilatación: un pixel "negro" (generalmente de fondo) pasa a "blanco" si en su entorno inmediato existe al menos un pixel "blanco". La dilatación produce un aumento en el tamaño de los objetos por adición de pixesl marginales.

La aplicación consecutiva de un proceso de erosión y dilatación, produce muy poco cambio en el tamaño de los objetos y la pérdida de los puntos de contacto entre ellos siempre que éstos sean pequeños. La figura 4.3 muestra de manera fácilmente comprensible éste efecto.

(Fig. 4.3)

Una vez vistos los conceptos teóricos correspondientes al tema, pasaremos a la realización de ejercicios que pongan en práctica los conocimientos adquiridos.

 

Ejercicio 4.1

Segmentación de imágenes preparadas para ello.

Cargar la imagen BALLS.TIF. Generar en el área campo cuatro pantallas para poder visualizar los cambios que se producirán en la imágen durante el procesado. Pulsando sobre el modulo de programa Process se sustituirá el área del módulo View, apareciendo una serie de carpteas de la que se seleccionará la correspondiente a Tresholding. Haciendo el correspondiente doble clic con el botón izquierdo sobre dicha carpeta, se desplegará la opción Binarisation que escogeremos pulsando una vez sobre el icono con el botón izquierdo del ratón.

En la parte inferior del área derecha de la pantalla aparecen dos cuadros. En el izquierdo (Binarisation), aparece un esquema de la conversión de la imagen sobre el que podremos elegir la imagen de partida y el nombre de la imagen resultante, así como la opción de binarizació y el intervalo de valores de intensidad de luz que queramos probar en la segmentación. El cuadro derecho (Choice) es una ventana que cambiará según la entrada de Binarisation que estemos utilizando y que permitirá elegir unas determinadas opciones.

Centrándose en el cuadro Binarisation, la imagen que esté en el campo aparecerá en la parte superior del esquema de conversión, pero pulsando sobre su nombre, podremos sustituirla por cualquiera de las existentes en memoria en ese momento (listadas en el cuadro Choice). Nosotros mantendremos BALLS. Una vez elegida la imagen, nos fijaremos en la sección que permite elegir el tipo de binarización que se desea aplicar. En este ejercicio se elegirá la opción en el cuadro Choices threshold (ésta opción, a diferencia de la escrita con mayúscula, Threshold, permite trabajar con intensidades de luz negativas derivadas de la aplicación de filtros).

Inmediatamente bajo la opción de binarización aparecen los valores elegidos automáticamente por el programa como límites del intervalo crítico de binarización. Aunque esos valores son modificables en esta ocasión no los cambiaremos.

Finalmente y en relación al nombre de la imagen resultante, aunque es posible elegir cualquier nombre, mantendremos el que nos ofrece el programa (ima1).

El proceso se llevará a cabo cuando pulsemos con el botón izquierdo del ratón sobre el icono Go, en la parte inferior del área de procesado. Su resultado se presenta a continuación.

 

Ejercicio 4.2

Segmentación de imágenes con alto rudio de fondo.

El procesado que se acaba de realizar es un procesado sin filtro, pero puede suceder que la imagen contenga un alto ruido de fondo, y por ello sea necesario aplicar un filtro para anularlo o reducirlo.

En este ejercicio repetiremos el protocolo de procesado aplicado en el ejercicio anterior, pero sobre la imagen MEB.TIF que se encuentra el módulo View. Aplicando este procesado sin filtro, el resultado es el que se muestra a la derecha en la figura siguiente:

Para la eliminación del ruido de fondo de la imagen se procede aplicando un filtro de suavizado. En el módulo Process hay que abrir la carpeta Filters y seleccionar la opción Smoothing. En el cuadro de Smoothing, situado en la parte inferior derecha de la pantalla, se selecciona la imagen origen sobre el esquema del proceso. Sobre ese mismo esquema, en el siguiente paso, se escoge la opción median como filtro. Para acabar, y como nombre de imagen de salida, cambiaremos el propuesto por otro, por ejemplo el original (meb). El resultado, una vez se ha pulsado con el botón izquierdo del ratón sobre Go, se presenta en el sector derecho de la siguiente figura:

Una vez aplicado el filtro de suavizado, podemos repetir la operación de segmentación sobre la nueva imagen generada manteniendo el nombre original para la imagen de salida.

Arrastraremos a continuación la miniatura ima1 a un sector del área campo y comprobaremos que hay más ruido de fondo en ima1 que en meb.

 

Ejercicio 4.3

Segmentación de imágenes poco contrastadas.

Un problema que puede existir cuando se ha captado una imagen es que esté poco contrastada y que para poder procesarla, por ejemplo segmentarla, sea necesario modificarla previamente.

Cargar en memoria la imagen HOUSE1.TIF.

En el módulo Process seleccionar de la carpeta Filters, la opción Sharpening. En el cuadro inferior, y sobre el esquema de procesado, la imagen de entrada será house1, el filtro de enfatizado será del tipo hipass_3x3, el Kernel alto (high); el escalado de la imagen ausente (no), y el nombre de salida ima3. El resultado se presenta a continuación.

Podremos comprobar que ima 3 ha ganado en contraste respecto a house1.

Si en lugar de haber aplicado el filtro anterior, hubiésemos utilizado un filtro de convolución, el efecto de contraste hubiése sido mayor. Para hacerlo, en el módulo Process seleccionaríamos, de la carpta Filters, la opción Convolution. El resultado sería similar al que aparece en el tercer cuadrante del área campo.

 

Ejercicio 4.4

Segmentación de imágenes con objetos en contacto.

 

Otra situación que podemos encontrar al afrontar problemas de análisis de imagen, se da cuando los objetos contactan entre sí. En tal caso la distinción de éstos objetos como tales resulta difícil por la apariencia de ser objetos simples y de morfología artificial las agrupaciones de éstos. La repercusión de esta circunstancia es especialmente importante si la tarea de análisis incluye el recuento de objetos o el estudio de su morfología. Los filtros de erosión-dilatación, también llamados de morfología matemática, constituyen una herramienta simple y efectiva para resolver la cuestión.

Un problema como el comentado se observa en la imágen BALLS.TIF, la cual muestra un grupo de numerosos objetos redondeados que se resuelven como sólo tres, si son recontados con Visilog sin ninguna operación de procesado previa.Usando el programa, sin embargo, es posible aplicar un proceso erosión-dilatación que suprimirá los contactos y resolverá correctamente el recuento de objetos.

Comenzaremos por comprobar las dificultades que ofrece el recuento en la imagen no preparada.Para ello, cargado el módulo Process comenzaremos pulsando sobre la carpeta Tresholding, elegiremos la opción Binarization y luego tresholding con el fin de obtener una imagen adecuada para recontar. Elegiremos luego el nombre de los ficheros de entrada y salida en el esquema de procesado (balls e ima1 respectivamente). Finalmente pulsaremos sobre GO obtendremos la imagen binarizada coloreada de azul.

Seguiremos abriendo la carpeta Analysis dentro del mismo módulo y elegiremos la opción Measurementes y luego number en el menú de la parte inferior. Tras hacerlo leeremos la ventana de resultados. El recuento da como resultado tres objetos.

 

El siguiente paso será la aplicación del filtro de morfología matemática, para lo cual podemos utilizar la imagen binarizada anterior (ima1), lo conseguiremos eligiendo sucesivamente las opciones Morphology, Erode & Dilate y Erode en la parte inferior derecha de la pantalla. El botón GO nos permitirá observar directamente el resultado del filtrado de la imagen (ima1), que podemos guardar con el mismo nombre. Tras la primera aplicación del filtro, los objetos quedarán aún unidos por puentes estrechos, por lo que será necesario repetir la operacíón hasta cinco veces antes de poder observar que prácticamente la totalidad de los objetos quedan aislados.

Una vez completada la operación de procesado podemos repetir el recuento de objetos comprobando que el número ahora es muy superior al anterior (14).

 

Ejercicio 4.5

 

Uso de algunas herramientas de edición.

Durante la aplicación de algunas operaciones de procesado de imagen, puede ser interesante usar algunas herramientas de edición que encontraremos en la opción Edit de la barra de herramientas. Al acceder al menú desplegable de esa opción encontraremos cinco posibilidades:

COPY: para copiar un área seleccionada en memoria.

CUT: para copiar un área en memoria y suprimirla en la imagen.

DEL: para borrar un área en la imagen.

CLEAR: para borrar la imagen conservando los trazados de un área de edición.

PASTE: para pegar el área de edición. Esto puede hacerse sobre la misma imagen (IMAGE) o generando una nueva imagen (AS NEW IMAGE).

Como ejercicio que puede requerir la aplicación de estas herramientas intentaremos suprimir un área irregular en una imagen. Para ello operaremos de la siguiente manera. Pulsaremos sobre el botón lápiz y luego sobre el botón que muestra un área irregular de color gris. Cerrando al final, y sin tocar el márgen del campo, perfilaremos con el ratón el área a suprimir. Pulsando sobre el botón +I superpondremos el trazado, elegiremos el valor de giris del relleno, ->G si se trata de una imagen monocromática y ->B si se trata de una imagen monocromática. Ahora estamos en condiciones de almacenar la nueva imagen en disco. El resultado final habrá sido una imagen almacenada en la que el área deseada ha sido suprimida y sustituida por un relleno.