Segmentación de Imágenes medicas para detección de detalles
(1) (1) ( 2)
Matias, J. ; Becilla, C. ; Chavez, P.
1
Miembros de la materia, Egresados, Facultad de Ingeniería Eléctrica y Computación (FIEC)
2
Director de la materia, profesor e investigador de la ESPOL.
Facultad de Ingeniería en Electricidad y Computación
Escuela Superior Politécnica del Litoral
Campus Prosperina, Km. 30.5 vía Perimetral, Guayaquil, Ecuador
jmatias@[Link], cbecilla@[Link], pchavez@[Link]
Resumen
El Procesamiento Digital de Señales aplicado a las imágenes tiene como objetivo visualizar o analizar algunos
detalles de la imagen que no son perceptibles en su forma original.
La correcta visualización de detalles en las imágenes radiológicas, que en muchos casos se presentan en escala de
grises, es un factor fundamental en los diagnósticos médicos y toma de decisiones que son de vida o muerte.
El presente trabajo realiza un análisis de las imágenes médicas, entre las cuales tenemos radiografías y
tomografías, logrando segmentar regiones de interés y comparar entre distintos métodos de segmentación los
resultados para determinar en cuál se obtiene un mejor detalle del área de interés a ser estudiada.
Para el desarrollo del presente trabajo se utiliza el programa Matlab, el cual constituye una poderosa herramienta
para el análisis de este tipo de señales, y que facilita la tarea de construir una aplicación específica.
Palabras Claves: Segmentación, Imágenes medicas, MatLab.
Abstract
Digital signal processing applied to the image processing field has as a main propose to display and analyze image
details witch are no noticeable on its in its original form.
The correct visualization of details on radiologic images, which in many cases are presented in gray scale, it is a
key factor in medical diagnostics and decisions that are life threatening.
This paper conducts an analysis of medical images like have X-rays and scans, we will get to segment regions of
interest and compare between different methods of segmentation and we will determine which one gets a better
detail of the area of interest to be studied. For the development of this work we used MatLab, which is a powerful
tool for analyzing these signals, and facilitates the task of building a specific application.
Keywords: Segmentation,medical images,MatLab .
1. Introducción con un módulo para el procesamiento de imágenes, es
por eso que se ha seleccionado a este programa como
En la actualidad existen diversos tipos de imágenes herramienta para el desarrollo del proyecto.
para diagnostico médico las cuales están basadas
principalmente en los métodos de adquisición, el 2. Segmentación
correcto procesamiento de dichas imágenes constituye
una herramienta para facilitar el diagnostico de 2.1 Generalidades
determinadas dolencias y, de esta manera, permitir al
médico alcanzar mayor fiabilidad y eficacia al La segmentación de imágenes se define como la
momento de prescribir un tratamiento. partición de una imagen en sus regiones
La segmentación de imágenes médicas en regiones constituyentes, las cuales no deben estar solapadas y
de interés juega un papel importante en el además son homogéneas respecto a alguna
reconocimiento de estructuras anatómicas. característica como por ejemplo la intensidad, así pues,
dada una imagen cuya entera región es representada
Matlab es uno de los programas de análisis por R, podemos definir la segmentación como el
matemático más importantes, el cual cuenta además
proceso que divide a R en n subregiones
R1,R2,R3…,Rn que cumplen con las siguientes
condiciones[1]:
• Cada pixel debe de estar en un región
.
• Los puntos en una determinada región deben
de estar conectados en algún sentido
predefinido.
• Las regiones deben de ser disjuntas Figura 2. Vecindad diagonal
para todo i y j tal que i≠j.
• para i=1,2,3, …, n. La vecindad de ocho denotada por NS(p) es la
define similitud de intensidad de los unión de las dos vecindades anteriores.
puntos de la región Ri.
• para cualquier región
adyacente Ri y Rj
2.2 Vecindad y Conectividad
La vecindad define la relación entre un pixel y su
entorno. El pixel p=(x,y) tiene 2 vecinos verticales y 2
vecinos horizontales, conocidos como vecindad de Figura 3. Vecindad de ocho
cuatro o vecindad directa.
Finalmente la conectividad entre dos pixeles p y q
⎧a = ( x + 1, y ) está dada por los siguientes criterios:
⎪b = (x − 1, y )
⎪
N 4 ( p) = ⎨
⎪c = (x, y + 1)
• Vecindad: p y q son vecinos directos o
⎪⎩d = ( x, y − 1) indirectos.
• Similitud: p y q comparten alguna
propiedad, como por ejemplo el nivel de
gris.
3. Algoritmo utilizado
3.1 Contornos Activos
En el presente trabajo se utiliza un método iterativo
Figura 1. Vecindad vertical y horizontal de segmentación [2] basado en contornos activos.
El método de contorno activo consiste en delimitar
La vecindad diagonal, denotada por ND(p), está un determinado objeto dentro de una imagen [3],
definida por las siguientes coordenadas: produciendo un contorno alrededor de este. Requiere
de un contorno inicial y en cada ejecución del
⎧e = ( x + 1, y + 1) algoritmo se mejorara atrayéndolo a los limites del
⎪ f = ( x + 1, y − 1)
⎪ objeto analizado, finalmente se delimita el objeto en
N d ( p) = ⎨
⎪ g = ( x − 1, y + 1) cuestión.
⎪⎩h = ( x − 1, y − 1)
3.2 Algoritmo de Chan-Vese
En el programa implementado en MATLAB se
utiliza el algoritmo planteado por Chan y Vese [2] para
lograr la segmentación, a continuación se describe
dicho algoritmo.
Se asume una imagen que está formada por dos
regiones, cada una de ellas tiene una intensidad
aproximadamente constante con valores y y el
objeto a ser detectado es representado por el valor de
; se asume también que el contorno de este objeto
es denotado por , se tiene entonces que
dentro del objeto o dentro de y que fuera
del objeto o fuera de , se define también las
siguientes funciones:
F1 (C ) = ∫ u 0 − c1 dx
2
Figura 6. Curva C dentro y fuera del objeto.
C
F2 (C ) = ∫ u 0 − c 2 dx
2
Donde C es otra curva variable; y las constantes c1
y c2 constituyen el valor promedio de la intensidad de
u0 dentro y fuera de C respectivamente.
El siguiente paso es analizar los posibles casos que
se puedan presentar, así pues si la curva F esta fuera Figura 7. Curva C rodeando al objeto.
del objeto como se muestra en la figura 4 se obtiene
entonces que 0y 0.
3. Resultados experimentales
Uno de los principales problemas encontrados en la
implementación de este proyecto fue inicializar
correctamente la curva que se recibe como entrada
para la ejecución de este algoritmo, y permitir además
al usuario delimitar la región a segmentar. La solución
fue utilizar una función para dibujar líneas entre dos
puntos dados [5]; se elaboro el código de tal manera
que permita al usuario seleccionar la cantidad de
Figura 4. Curva C fuera del objeto. puntos y las coordenadas de los mismos, estos puntos
constituyen los vértices del polígono que a su vez es
Si la curva C esta dentro del objeto como se la curva de inicialización
muestra en la figura 5 entonces 0y .
0. En la figura 8 se muestra la ventana en la cual se le
permite al usuario seleccionar los puntos que
constituirán la curva de inicialización, en el primer
experimento se selecciono 4 puntos dentro de la figura
8 [6].
Figura 5. Curva C dentro del objeto.
E Si la curva C se encuentra dentro y fuera del
objeto como se muestra en la figura 6 entonces
0y 0 , y finalmente si la curva C se
encuentra delineando el contorno del objeto como se
muestra en la figura 7 entonces que 0 y
0, por lo tanto para lograr la segmentación lo
que se debe hacer es minimizar de tal
manera que: Figura 8. Selección de puntos en la imagen.
0
Los resultados que se obtuvieron utilizando la figura 8
se los muestra a continuación:
4. Problemas presentados
Para el siguiente experimento se utilizo la figura 12
[7], que presenta una región menos uniforme en
relación a la intensidad del nivel de gris
Figura 9. Imagen original y curva de inicialización.
En la figura 9 se muestra la imagen original a tratar
y la curva de inicialización dibujada una vez que el
usuario selecciono 4 puntos aleatoriamente dentro de
la imagen y cercanos al objeto a segmentar
.
Luego de aplicar la segmentación se obtuvo el
resultado mostrado en la figura 10, teniendo esta Figura 12. Resonancia magnética del cerebro
imagen como referencia, se procedió a reemplazar los Como se puede notar en la figura 13 el resultado
valores de las coordenadas de la región encontrada con muestra la región extraída y además las
los valores originales de la figura 8. discontinuidades dentro de la misma, si se toma esta
imagen como referencia para generar una nueva con
En la figura 11 se muestra el resultado final, el los valores de gris originales para esta región el
detalle encontrado luego de haber realizado la resultado que se conseguirá se muestra en la figura 14.
segmentación de la figura 8, con los valores originales
de intensidad de gris para dicha región.
Figura 13. Segmentación de resonancia magnética
del cerebro
Figura 10. Resultado de la segmentación aplicada a
la tomografía.
Figura 14. Segmentación de resonancia magnética
del cerebro con niveles de gris originales.
Si el objetivo es encontrar la región en su totalidad
se debe proceder a rellenar las subregiones
encontradas con los valores originales de gris sin
embargo esto sirve para detectar los detalles o cambios
de niveles dentro de la región a analizar.
Figura 11. Segmentación de tomografía con niveles
de gris originales.
4. Conclusiones
[9] Matlab file exchange at mathworks
• Establecer un método eficaz de [Link]
segmentación de imágenes para hallar e/15374
regiones de interés y detalles constituye
una tarea complicada, hay que tener en [10] González y Woods, Procesamiento digital de
cuenta el enfoque del análisis para cada imágenes usando MATLAB.
aplicación y que es lo que se quiere
encontrar, es decir cuál es el objetivo que [11] Faúndez Marcos, Tratamiento digital de voz e
se persigue al segmentar la imagen, este imagen y aplicación a la multimedia.
puede ser simplemente detectar anomalías
que se interpretan como discontinuidades
o cambios de intensidad dentro de la
imagen a estudiar, o la separación de
regiones para su posterior análisis. ________________________
Ing. Patricia Chavez
• El método iterativo utilizado en este Profesor de la Materia
proyecto demostró ser eficaz para
segmentar regiones que se encuentran
delimitadas de alguna manera, sin
embargo la existencia de discontinuidades
dentro de la misma y la naturaleza del
algoritmo de forzar la curva de
inicialización hacia los límites de la región
provocaba que los resultados se muestren
incompletos sin la presencia de los valores
originales de intensidad de gris para estas
discontinuidades dentro de la región
segmentada, requiriendo así posterior
procesamiento si el objetivo inicial de la
segmentación es mostrar por completo esta
región inclusive las subregiones existentes
dentro de la misma.
5. Referencias
[1] González y Woods, Procesamiento digital de
imágenes usando MATLAB.
[2] T. Chan and [Link], Active contours without
edges.
[3] [Link]
[4] [Link]
[5] Medical images database and MRI
[Link]
e/15374
[6] Medical images database and MRI
[Link]/img/cases/[Link]
[7] Medical images database and MRI
[Link]/img/cases/[Link]
[8] Matlab File exchange at Mathworks
[Link]
e/19567.