• No se han encontrado resultados

Técnicas de segmentación empleadas en Matlab y en ImageJ

CAPÍTULO 1. GENERALIDADES SOBRE EL ESTUDIO DEL SOFTWARE

2.3 Técnicas de segmentación empleadas en Matlab y en ImageJ

Las técnicas de segmentación empleadas en ImageJ son plugins incorporados al programa en la carpeta de plugins de su instalación. Éstas son implementadas tanto en Matlab como en ImageJ, donde se facilita y ayuda a la detección de bordes, en la cual la imagen se reduce al contorno o borde de los objetos que contiene, iluminada con diferente intensidad o color. Para comparar los métodos se calculan los coeficientes de Jaccard con la función:

[DICE_O,DICEmean_O,J_O,Jmean_O] = Etiq_Eval_Otsu(Mascara,Imag_Seg).

2.3.1.1 Técnica umbralado de Otsu en Matlab

El algoritmo de Otsu es una técnica que se basa en la comparación de umbrales, el cual se hace en Matlab para la imagen en escala de grises y con valores entre 0 y 1(normalizada). Con la función „graythresh‟ se determina un umbral global para la imagen con este método,

que se emplea para convertir una imagen de intensidad a una imagen binaria con „im2bw

basada en umbrales, donde el nivel es un valor normalizado de intensidad que está en el rango [0, 1]. Esta función escoge el umbral para minimizar la varianza interclase de los píxeles blancos y negros.

El análisis se hace para todas las células, puesto que cuando hay células muy cercanas a los bordes, producto a que puede ocurrir algún error en la segmentación, al eliminar las células que tocan el borde de la imagen con „imclearborder‟ en la imagen segmentada, se eliminan

todas las células que están alrededor, mientras que en la máscara se mantienen algunas que no están en la imagen que se segmenta, por este motivo se emplea la imagen completa. Se rellena los “huecos” de esta con „imfill‟, y se alcanza un resultado mejor de la imagen.

La máscara de la imagen se carga para comparar la imagen que se obtiene al aplicar el algoritmo, y se calcula los coeficientes de Jaccard con éstas dos.

2.3.1.2 Técnica umbralado de Otsu en ImageJ (Otsu thresholding)

Esta técnica trata la comparación con umbrales a través del método de Otsu, el cual se basa en maximizar una medida estadística que se denomina varianza entre clases, donde un umbral que produzca la mejor separación entre clases, en términos de los valores de intensidad de éstas, será el umbral óptimo.

El método de Otsu en ImageJ está basado completamente en cálculos que se realizan a partir del histograma de la imagen, que es dividido en dos clases y la varianza interclase minimizada. Para encontrar el umbral Otsu, se calcula el valor del umbral buscado para el cual es máxima la varianza interclase [26].

Con los comandos File → Open se carga la imagen a la cual se le aplica esta técnica. Si ésta es en RGB, se convierte a escala de grises con Image → Type → 8-bit, puesto que ImageJ lo requiere en esta aplicación, finalmente en Plugins → Filters → Otsu

Thresholding se obtiene la imagen umbralada, y aparece en una ventana el umbral que encuentra para ésta (Figura 2.5), que se guarda en formato bmp.

Finalmente se carga la imagen segmentada en Matlab y se rellenan los “huecos” de ésta con

Figura 2.5 Ventana que muestra en ImageJ el umbral encontrado en la imagen segmentada.

2.3.2.1 Técnica de watershed en Matlab

La transformada watershed considera la magnitud del gradiente de una imagen como una superficie topográfica. Los píxeles que tienen el gradiente de intensidad más alto se corresponden a las crestas, que representan los límites región. Los píxeles de los valles están delimitados por la línea de las crestas, de forma que todos los puntos encerrados en esa línea tienden a un mínimo de intensidad local común. Todos los píxeles que tienden a un mínimo regional común, representan un segmento de la imagen (un objeto) [25][29]. Para aplicar la técnica de watersheds primeramente se carga la imagen y se lleva a escala de grises y a doble, de esta forma se trabaja con ella normalizada. Puesto que esta técnica tiende a producir sobresegmentación se aplica el gradiente morfológico y también el de Sobel, al cual se le hace una serie de preprocesamientos que incluyen la determinación de marcadores internos y externos para obtener mejores resultados con la transformada de watershed. Para suavizar el gradiente y evitar crestas espurias, se hace un filtrado de éste, donde se prueba con un filtro de promedio móvil y con uno gaussiano.

Primeramente se hallan los marcadores internos con la segmentación de Otsu. Se hace la operación de erosión sobre la imagen binaria obtenida con la función „bwmorph‟ para

obtener los marcadores internos, a los que se le calcula la transformada de distancia con „bwdist’ para así hallar con una nueva aplicación de la transformada watershed la posición de los marcadores externos. Con ambos marcadores se hace un OR para la imposición de mínimos a la imagen del gradiente filtrado con el mapa de marcadores con la función

imimposemin‟, para aplicar la segmentación con el nuevo gradiente obtenido, que

determina cuál región ha de ser considerada como parte integrante de cuenca y cuál no. El umbral que se emplea en la segmentación de Otsu para hacer los marcadores internos en la imagen hace que la segmentación no sea perfecta en la imagen a segmentar, principalmente en las esquinas.

Los coeficientes de Jaccard, se hallan para la imagen completa (sin limpiar los bordes). Para esto se detecta el fondo de la imagen segmentada y se complementa, lo que se logra con diferentes procesamientos que se crean en Matlab.

Con „regionprops‟ se halla el valor del área de mayor amplitud en la imagen que se

segmenta para determinar la etiqueta del fondo (que tiene mayor área) con „find‟ y se crea

una imagen de unos del tamaño de la imagen segmentada para poner en cero el fondo de ésta. Con lo explicado anteriormente se logra que la imagen tenga el fondo negro (0) y las células segmentadas sean blancas (1 binario), incluyendo las que tocan el borde, que es lo que se quiere, alcanzar la mayor similitud posible con la máscara de ésta para calcular los coeficientes de Jaccard entre el resultado de la segmentación que se obtiene y la máscara de la imagen original.

2.3.2.2 Técnica de watershed en ImageJ

El algoritmo de la transformada watershed, se aplica a la imagen del gradiente que se obtiene en Matlab, luego de un preprocesamiento, puesto que si se aplica sobre la imagen original se produce una sobresegmentación.

Con File → Open se carga la imagen deseada y se verifica si está en RGB con los comandos Image → Show Info, para poder aplicar la técnica hay que convertir en escala de grises con Image → Type → 8-bits, pues ésta requiere imágenes de este tipo, aunque la imagen que se carga es en escala de grises. En Plugins → Filters → Watershed Algorithm, se obtiene la imagen resultante, que se guarda en formato bmp y se carga en el Matlab para hallar los coeficientes de Jaccard.

Para esto se utiliza la imagen completa, se hace un ‘regionprops‟ a la imagen etiquetada con bordes para determinar la zona de mayor área en la imagen, se determina la etiqueta del fondo con ‘find’, se crea una matriz de unos del tamaño de la imagen (siendo esta imagen

blanca), y de esta forma se pone en cero el fondo, así quedan las células segmentadas en blanco y el fondo de la imagen en negro. Seguido se carga la máscara de la imagen original para calcular los coeficientes.

CAPÍTULO 3.

RESULTADOS Y DISCUSIÓN: FILTRADO Y

Documento similar