DIVISIÓN DE CIENCIAS BASICAS E INGENIERÍA …148.206.53.84/tesiuami/UAMI11209.pdf · “FANTOMA...

31
UNIVERSIDAD AUTONOMA METROPOLITANA IZTAPALAPA DIVISIÓN DE CIENCIAS BASICAS E INGENIERÍA DEPARTAMENTO DE INGENIERÍA ELÉCTRICA “FANTOMA DE CABEZA HUMANA PARA RESONANCIA MAGNÉTICA” REALIZADO POR: SOTO SANTIAGO ERIKA ARACELI ASESOR: OSCAR YAÑEZ AREA DE CONCENTRACIÓN: INSTRUMENTACIÓN MÉDICA ELECTRÓNICA JULIO 2004.

Transcript of DIVISIÓN DE CIENCIAS BASICAS E INGENIERÍA …148.206.53.84/tesiuami/UAMI11209.pdf · “FANTOMA...

UNIVERSIDAD AUTONOMA METROPOLITANA IZTAPALAPA

DIVISIÓN DE CIENCIAS BASICAS E INGENIERÍA

DEPARTAMENTO DE INGENIERÍA ELÉCTRICA

“FANTOMA DE CABEZA HUMANA PARA RESONANCIA MAGNÉTICA” REALIZADO POR:

SOTO SANTIAGO ERIKA ARACELI ASESOR:

OSCAR YAÑEZ AREA DE CONCENTRACIÓN:

INSTRUMENTACIÓN MÉDICA ELECTRÓNICA

JULIO 2004.

INDICE

1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2. Planteamiento del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

3. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3

4. Metodología . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4

4.1 Desarrollo de las rebanadas del modelo analítico en Matlab . . . . . . . . . . . . 4 4.2 Diseño y construcción del fantoma físico. . . . . . . . . . . . . . . . . . . . . . . . . . . 6 4.3 Pruebas del fantoma físico por medio de Resonancia Magnética (RM). . . . .8 4.4 Histograma de las imágenes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10 4.5 Segmentación de las Imágenes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11 4.6 Índice de similitud (Tanimoto). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12 4.7 Desarrollo de una Interfaz Grafica de Usuario (IGU). . . . . . . . . . . . . . . . . 13

5. Resultados ..................................... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18 6. Conclusión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

7. Apéndice A. Código de la interfaz gráfica de usuario. . . . . . . . . . . . . . . . . . . . 21 8. Referencias bibliográficas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

1. INTRODUCCIÓN

La Resonancia Magnética (RM) es uno de los métodos más avanzados de

diagnóstico por imagen, de carácter no invasivo, que existe en la actualidad. Las

imágenes obtenidas son de alta resolución, pudiendo por ejemplo efectuar estudios

cardiovasculares anatómicos y funcionales sin necesidad de insertar ningún catéter en el

cuerpo. A diferencia de los Rayos X, permite visualizar y diferenciar con gran detalle

las estructuras de los tejidos blandos, como son el cerebro, los ligamentos tendinosos, el

corazón, etc. Por este motivo, especialidades como la Neurología o la Traumatología

han convertido a la RM (Resonancia Magnética) en su técnica diagnóstica predilecta,

ya que les ofrece información diagnóstica no disponible por ningún otro medio.

Cualquier plano de imagen o "corte" obtenido a través de la RM se puede proyectar

y luego almacenarse en un computador, para luego con algoritmos especializados

obtener información relevante. Dentro de este campo de las imágenes médicas se hace

necesario el desarrollo de algoritmos de segmentación para evitar en lo posible los

métodos manuales y reducir en gran medida los errores que se cometen de operador a

operador utilizando técnicas manuales, además de la rapidez y la reproducibilidad que

se agrega. En esencia, la segmentación consiste en hallar la estructura interna del

conjunto de descripciones de los objetos (píxeles) en el espacio de representación

(imagen). Esta estructura interna obviamente depende en una primera instancia, de la

selección de las descripciones de los objetos (píxeles) y de la forma en que éstos se

comparan, es decir, del concepto de similaridad que se utilice y de la forma en que este

se emplee [2]. Se han propuesto gran cantidad de algoritmos para la segmentación

intracraneal en imágenes digitales, estos algoritmos asignan una etiqueta especial a los

píxeles que constituyen las fronteras de separación entre los tejidos cerebrales.

1

2. PLANTEAMIENTO DEL PROBLEMA En el ambiente clínico se ha empleado mucho la imagenología por medio de

Resonancia Magnética(RM) debido a su mayor resolución y contraste que ofrece en

comparación con otros equipos, estas imágenes de RM son analizadas y caracterizadas

a través de un procesamiento computacional, de lo cual se pueden reconocer una serie

de estructuras intracraneales; para hacer la separación y delineación de estas regiones

intracraneales, se desarrollaron una serie de algoritmos. Sin embargo estos algoritmos

hay que corroborarlos, en este caso se hace necesario el uso de un modelo físico y

geométrico para ir analizando cada uno de los algoritmos y probar si estos(algoritmos)

son lo suficientemente buenos como para hacer el reconocimiento adecuado entre

regiones intracraneales.

Con base en esto se ha propuesto como proyecto terminal el desarrollo de un

modelo de cabeza y el análisis de éste por medio de herramientas computacionales y

haciendo uso del programa Matlab.

2

3. OBJETIVOS

3.1 Objetivo General Diseño y construcción de un fantoma tridimensional de cabeza humana.

3.2 Objetivos Particulares

Desarrollar las rebanadas del modelo 3D de cabeza en Matlab.

Selección de materiales y construcción del fantoma.

Validación del fantoma en Resonancia Magnética y aplicaciones de problema

inverso.

3

4. METODOLOGÍA 4.1 Desarrollo del modelo analítico en Matlab

El modelo que se propuso para la comprobación de algoritmos de segmentación

fueron dos esferas concéntricas de distinto radio y una dentro de la otra las cuales se

simularon por medio de un algoritmo a través del cual nosotros pudimos observar las

diferentes rebanadas que se deseaban obtener.

El algoritmo que genera las rebanadas del modelo se diseño en el paquete de

desarrollo Matlab a través de una función que lleva por nombre “radios.m” y consiste

de dos parámetros de entrada que debe especificar el usuario, como es: altura a la cual

se desea realizar el corte del modelo y la resolución de la imagen, con dichos

parámetros el programa hace uso de una ecuación geométrica para calcular los radios de

cada esfera:

221 hrr −=

Donde:

r= Radio calculado.

r1= Radio de las esferas que se incluyen en la rebanada.

h= Altura de las esferas donde se hará el corte.

Esta ecuación calcula una aproximación del corte de las dos esferas. El código de

la función se muestra en la figura 4.1 y una muestra de las rebanadas generadas se

muestra en la figura 4.2.

4

Figura 4.1 Algoritmo para formar el modelo analítico.

5

Figura 4.2 Rebanadas generadas con la función radios. 4.2 Diseño y construcción del fantoma físico

Como ya se ha señalado, se propuso un diseño de fantoma físico el cual consiste en

dos esferas concéntricas y una dentro de otra con la intención de contar con dos

compartimentos a través de los cuales se podrá experimentar con dos tipos de

compuestos al mismo tiempo.

Por otro lado; la intención de diseñarlo de esta manera es simular el tejido cerebral

con la esfera interna y la grasa con la esfera externa, tal como se muestra en la figura

4.3.

Figura 4.3. Diseño del fantoma

Una vez hecho el diseño se procedió a desarrollar el fantoma físico con acrílico, se

pensó en el acrílico por que es un material termoplástico y reúne varias ventajas como

son:

6

• Alta transmisión de luz (60-80’% dependiendo el color). • Gran resistencia (10 años). • Económico. • Ligereza: 50% mayor que el vidrio, 43% más que el aluminio. • Resistencia al impacto • Resistencia al calor • Resistencia a esfuerzos mecánicos considerables: no se deforma, no

se astilla ni se rompe. • Resistencia Química: Resiste el ataque de una gran variedad de

productos químicos • Material Termoplástico: Debido a esta propiedad es fácil de

termoformar, a temperaturas de 170 a 190 °C.

Los radios de las esferas del fantoma son de 6cm (esfera interna) y 7.5 cm (esfera

externa) con un grosor de 0.5 cms. para cada una. En la figura 4.4 se muestra la

estructura del fantoma físico.

El fantoma tiene dos soportes, uno de cada extremo, el que se muestra en la parte

inferior es sólido totalmente; el de la parte superior es hueco de tal manera que se

pueda insertar fluido a la esfera interna (1ra. esfera). Para insertar fluido a la esfera

externa (2da. esfera) existe un cilindro hueco, muy cerca del soporte superior que nos

permite llenarla con algún tipo de compuesto.

Figura 4.4 Estructura del fantoma físico

7

En la figura 4.5 se muestra el diseño del fantoma físico desarrollado con acrílico y

siguiendo las características de diseño señaladas anteriormente.

Figura 4.5. Fantoma físico

4.3 Pruebas del fantoma físico por Resonancia Magnética

Contando ahora con el fantoma físico, se procedió a hacer pruebas con Resonancia

Magnética haciendo uso de agua para llenar la esfera externa y para la esfera interna se

uso un compuesto de: agua, sacarosa, jarabe de glucosa – fructosa, cloruro de sodio,

citrato de sodio, fosfato monobásico de potasio, goma ester, trartrazina, aceite vegetal

bromado (esta combinación de sustancias pertenece a la bebida comercial, conocida con

el nombre de Gatorade).

8

Las imágenes obtenidas por RM del fantoma son las que se muestran en la figura

4.6.

Los pequeños picos que muestran las imágenes son generadas por los soportes del

fantoma.

Figura 4.6 Imágenes obtenidas del fantoma físico por medio de RM.

En la figura 4.7 se muestra las rebanadas del fantoma analítico desarrollado a través

de Matlab equivalentes a las imágenes obtenidas por RM del fantoma físico.

Figura 4.7 imágenes obtenidas del fantoma analítico.

9

4.4 Histograma de las imágenes

Contando ahora con las imágenes del fantoma físico, como del fantoma analítico

obtenemos el histograma de estas imágenes para realizar una comparación visual. En la

figura 4.8 se muestran dichos histogramas y en la figura 4.9 se muestra el código para

obtener los histogramas de cada imagen.

a) Histograma de las imágenes b)Histograma de las imágenes obtenidas por medio de RM para obtenidas por medio del el fantoma físico. fantoma analítico.

Figura 4.8 Histogramas de los modelos

Figura 4.9 Código para obtener el histograma de los modelos.

10

Donde: Matriz => Indica la matriz de la imagen. i => indica la rebanada a la cual se le obtendrá el histograma. m1 => Calcula el valor mínimo de la matriz. M1 => Calcula el valor máximo de la matriz. im1 => Obtiene una elongación de la matriz. Hist => Función de Matlab que regresa dos parámetros: h2 que es el número de elementos para cada punto, c2 se refiere al valor central de X. Bar => Función de Matlab que genera las barras del histograma.

Axis => Función de Matlab que escala los ejes de la gráfica generada de acuerdo a los valores especificados.

4.5 Segmentación de las Imágenes

Una vez teniendo los histogramas de las imágenes, podemos ahora obtener

segmentación de las mismas especificando un umbral, este umbral se puede especificar

con base en los histogramas obtenidos. En la figura 4.10 se muestran los resultados de

algunas de las segmentaciones que se realizaron y en la figura 4.11 se muestra el código

que se realizó para dicha segmentación.

a) Segmentación de la imagen del fantoma físico.

b) Segmentación de la imagen del fantoma analítico.

Figura 4.10 Segmentación de imágenes

11

Figura 4.11Código para obtener segmentación

Donde: matriz => Es la matriz donde se encuentran las imágenes.

idx1a => Es un vector que contiene todos los elementos que se encuentran entre umbral1 y umbral2. idx1b => Es el vector que contiene todos los elementos que se encuentran fuera de los rangos de umbral1 y umbral2.

4.6 Índice de similitud

Para analizar la similitud de nuestro fantoma físico con el fantoma analítico se

utilizo el algoritmo denominado “Índice de Tanimoto”.

En la literatura sobre evaluación de métodos de segmentación, la medida de

desempeño con mayor frecuencia empleado es el índice de similitud conocido como el

índice de Tanimoto [3].

El índice para imágenes binarias se define como [3]:

BABA

IT∪∩

=

Donde: • Indica cardinalidad. A y B Son las matrices donde están contenidas las imágenes.

12

La interpretación que se le da a este índice es la siguiente:

• IT=0 significa que ambas imágenes son completamente diferentes • IT=1 significa que ambas imágenes son iguales.

Para obtener el indice de Tanimoto se ejecuto la instrucción mostrada en la

figura 4.12.

Tanimoto= (nnz(img.*imgr))/(nnz(img+imgr));

Figura 4.12 Índice de Tanimoto

4.7 Desarrollo de una Interfaz Grafica de Usuario (IGU)

Para facilitar al usuario el manejo del despliegue de imágenes, así como de su

correspondiente histograma y la segmentación de imágenes se ha desarrollado una

Interfaz Gráfica de Usuario.

En la figura 4.13 se muestra como se obtienen las gráficas correspondientes a las

imágenes obtenidas por RM para el fantoma físico como para las imágenes del fantoma

analítico obtenidas por medio de Matlab, ambas en tercera dimensión.

En la gráfica del inciso “a)” nos permite ver el despliegue de las imágenes

obtenidas por RM del fantoma fìsico; mientras que en la gráfica del inciso “b)” se

puede visualizar el despliegue de las imágenes obtenidas por medio de Matlab del

fantoma analítico.

El botón que tiene el número 1, es el botón que permite ver dichas imágenes. Y las

barras que llevan el número 2 nos permite hacer rotaciones de las imágenes para poder

verlas desde diferentes ángulos.

13

Figura 4.13. Despliegue de imágenes en 3D obtenidas tanto para

el fantoma físico como para el fantoma analítico.

En la figura 4.14 se muestran los elementos de la interfaz que se usan para hacer el

despliegue de las imágenes pero en 2D.

En la gráfica del inciso “a)” se despliegan las rebanadas del fantoma físico y en la

gráfica del inciso “b)” se despliegan las rebanadas del fantoma analítico; para ello se

hace uso del botón que lleva el número 3. Por otro lado, la barra que lleva el número 4

se usa para elegir otra rebanada del fantoma físico y del fantoma analítico al mismo

tiempo.

14

Figura 4.14 Despliegue de las rebanadas de las imágenes obtenidas

del fantoma físico y el fantoma analítico.

En la figura 4.15 se muestran los elementos de la interfaz que se usan para hacer el

despliegue de los histogramas correspondientes para el fantoma físico y para el fantoma

analítico.

La gráfica del inciso “c)” nos muestra el despliegue del histograma de la rebanada

del fantoma físico que se muestra en la gráfica del inciso “a)”; mientras que la gráfica

del inciso “d)” nos muestra el histograma de la rebanada del fantoma analítico que se

muestra en la gráfica del inciso “b)”. El botón que tiene el número 5 nos permite

realizar dicha función.

15

Figura 4.15 Despliegue de los histogramas obtenidos para el fantoma

físico y el fantoma analítico.

En la figura 4.16 se muestran los elementos de la interfaz que se usan para hacer el

despliegue de la segmentación de las imágenes tanto del fantoma físico como del

fantoma analítico.

En la gráfica del inciso “e)” se muestra la segmentación de las rebanadas del

fantoma físico que se muestran en la gráfica del inciso “a)”. Mientras que en la gráfica

del inciso “f)” se muestra la segmentación de la rebanada del fantoma analítico que se

muestra en la gráfica del inciso “b)”.

Figura 4.16 Despliegue de segmentación de imágenes.

16

En la figura 4.17 se muestran los elementos necesarios para calcular el índice de

similitud. El botón que lleva el número 7 nos permite calcularlo, y el botón que se

muestra con el número 8 solo nos sirve para terminar la IGU.

Para ver el código completo de la interfaz para realizar todas las funciones descritas

anteriormente; este código se encuentra en el apéndice A.

Figura 4.17 Calculo del índice de similitud y cierre de la IGU.

17

5. RESULTADOS

En la figura 5.1 se muestra el resultado del plano tridimensional tanto para el

fantoma físico como para el fantoma analítico.

Figura 5.1 Plano de comparación tridimensional.

En la figura 5.2. se muestra la comparación bidimensional de los cortes de las

imagenes, es decir se muestra las imágenes en rebanadas tanto del fantoma físico como

del fantoma analítico.

Figura 5.2 Plano de comparación bidimensional.

En la figura 5.3 se muestra el histograma de las dos imágenes (fantoma físico y

analítico).

Figura 5.3 Histograma de comparación imágenes

18

En la figura 5.4 muestra la segmentación de las imágenes utilizando rangos de

umbral de 50 a 150.

Figura 5.4 Segmentación en el rango de umbrales de 100 a 200.

Para conocer la similitud de las imágenes se utilizo el índice de Tanimoto, Con

este calculo nosotros podemos conocer en que porcentaje se parece el fantoma físico

con el analítico y en todas las comparaciones se pudo obtener un porcentaje mayor del

50%.

Figura 5.5 Índice de similitud.

19

6. CONCLUSIÓN

El fantoma físico es uno de los primeros modelos que se ha desarrollado para

comprobar algoritmos de segmentación. Es un modelo sencillo pero que nos ha permitido

obtener imágenes de dos compuestos al mismo tiempo debido a los dos compartimentos

que nos ofrece. La respuesta que nos proporciona el acrílico no interviene con la respuesta

de los compuestos que se le suministran, por ello el acrílico es uno de los compuestos más

apropiados para el diseño de fantomas.

El modelo de acrílico es un compuesto que además de poseer propiedades importantes

tales como dureza y resistencia también posee la propiedad de tener un costo bajo de ahí

que se corrobore que el acrílico es la mejor elección.

Por otro lado el programa de desarrollo “Matlab”, es un lenguaje muy poderoso que nos

ha permitido simular la rebanadas del modelo y de esta manera desarrollarlo físicamente.

El índice de Tanimoto es un concepto importantísimo que nos permite comparar la

similitud de dos imágenes, con este concepto nosotros pudimos obtener el porcentaje de

igualdad entre nuestro fantoma físico con el analítico.

20

APÉNDICE A. CÓDIGO DE LA INTERFAZ GRÁFICA DE USUARIO. La siguiente función despliega las imágenes del fantoma físico y fantoma analítico en 3D. ha=handles.axes1; hb=handles.axes2; hf=handles.figure1; set(ha,'Parent',hf); %Activamos ejes : axes1 y axes2 set(hb,'Parent',hf); set(hf,'Visible','On'); figure(hf);axes(ha); load Imagen; %Cargamos la matriz Imagen que contiene las imagenes el fantoma fisico slice(Imagen,128,128,5); axis image; colorbar; colormap gray; shading interp; figure(hf);axes(hb); load modelo;%Cargamos la matriz modelo que contiene las imagenes el fantoma analitico slice(modelo,128,128,5); axis equal; colorbar colormap gray shading interp; set(handles.rotaxy,'Enable','on'); %Habilitamos los slider que cambian el angulo de rotacion %de los ejes set(handles.rotaz,'Enable','on'); set(handles.slider1,'Enable','off');%Desabilitamos el slider que elige el numero de rebanada La siguiente función nos ayuda hacer rotaciones alrededor del eje x-y function rotaxy_Callback(hObject, eventdata, handles) ha=handles.axes1; hb=handles.axes2; hf=handles.figure1; set(ha,'Parent',hf); set(hb,'Parent',hf); set(hf,'Visible','On'); siview1=get(ha,'View'); siview2=get(hb,'view'); set(ha,'View',[get(hObject,'Value'),siview1(2)]); set(hb,'View',[get(hObject,'Value'),siview2(2)]);

21

La siguiente función nos ayuda hacer rotaciones alrededor del eje z function rotaz_Callback(hObject, eventdata, handles) ha=handles.axes1; hb=handles.axes2; hf=handles.figure1; set(ha,'Parent',hf); set(hb,'Parent',hf); set(hf,'Visible','On'); siview1=get(ha,'View'); siview2=get(hb,'View'); set(ha,'View',[siview1(1),get(hObject,'Value')]); set(hb,'View',[siview2(1),get(hObject,'Value')]);

Esta función nos permite ver la primera rebanada del fantoma físico y fantoma analítico por medio del botón llamado corte. function Corte_Callback(hObject, eventdata, handles) global i; i=1; ha=handles.axes1; hb=handles.axes2; %Activamos ejes hf=handles.figure1; set(ha,'Parent',hf); set(hb,'Parent',hf); set(hf,'Visible','On'); figure(hf);axes(ha);%habilitamos axes1 load Imagen;%Cargamos la matriz Imagen que contiene las imagenes del fantoma fisico imag=Imagen(:,:,i); imagesc(imag);%Graficamos el primer corte del fantoma fisico axis image; colorbar colormap gray; figure(hf);axes(hb);%Habilitamos axes2 load modelo; r=modelo(:,:,i); imagesc(r);%Geaficamos el primer corte del fantoma analitico axis image; colorbar colormap gray; set(handles.rotaxy,'Enable','off'); set(handles.rotaz,'Enable','off'); set(handles.slider1,'Enable','on');

22

Esta función nos permite elegir diversas rebanadas a través del slider que lleva por

titulo slider1. function slider1_Callback(hObject, eventdata, handles) global i; ha=handles.axes1; hf=handles.figure1; hb=handles.axes2; set(hb,'Parent',hf); set(ha,'Parent',hf); set(hf,'Visible','On'); figure(hf);axes(ha); i=get(hObject,'Value'); load Imagen; if i>0 img=Imagen(:,:,i); imagesc(img); axis image; colorbar colormap gray; figure(hf);axes(hb); load model; rmatrizr=model(:,:,i); imagesc(rmatrizr); axis image; colorbar colormap gray; else %nada end

23

Esta función nos permite visualizar el histograma de las rebanadas del fantoma físico y

el fantoma analítico. function Histograma_Callback(hObject, eventdata, handles) global i; ha=handles.axes3; hb=handles.axes4; hf=handles.figure1; set(ha,'Parent',hf); set(hb,'Parent',hf); set(hf,'Visible','On'); figure(hf);axes(ha); load Imagen; imag=Imagen(:,:,i); m1=min(imag(:)); M1=max(imag(:)); iml=(255/(M1-m1))*(m1-imag)+255; [h1,c1]=hist(iml(:),256); bar(c1,h1,'hist'); axis ([0 255 m1 M1]); xlabel('Niveles de gris'); ylabel('Frecuencia'); figure(hf);axes(hb); load model; r=model(:,:,i); m2=min(r(:)); M2=max(r(:)); imr=(255/(M2-m2))*(m2-r)+255; [h2,c2]=hist(imr(:),256); bar(c2,h2,'hist'); axis ([0 255 m2 M2]); xlabel('Niveles de gris'); ylabel('Frecuencia');

24

Esta función nos permite visualizar la segmentación de las rebanadas de las imágenes. function Segmentaion_Callback(hObject, eventdata, handles) % global i; global umbral1;%Variables globales global umbral2; ha=handles.axes5;%Habilitamos ejes hb=handles.axes6; hf=handles.figure1; set(ha,'Parent',hf); set(hb,'Parent',hf); set(hf,'Visible','On'); prompt={'Especifica el umbral 1','Especifica el umbral 2'};%El usuario especifica umbrales def={'50','150'};%valores por default dlgTitle='Determina los umbrales'; LineNo=1;

respuesta=inputdlg(prompt,dlgTitle,LineNo,def); resp=isempty(respuesta); if(resp==1) %No hace nada else umbral=str2double(respuesta);%Convertimos los caracteres a numeros umbral1=umbral(1); umbral2=umbral(2); end figure(hf);axes(ha); load Imagen; img=Imagen(:,:,i); m1=min(img(:)); M1=max(img(:)); iml=(255/(M1-m1))*(m1-img)+255;%Realizamos elongacion img=iml; idx1a=find(img>=umbral(1) & img<=umbral(2)); %Analizamos los valores que se encuentran

en el %rango especificado idx1b=find(img<umbral(1) | img>umbral(2)); img(idx1a)=255;Hacemos la imagen binaria img(idx1b)=0; imagesc(img);Graficamos imagen segmentada axis image,colorbar figure(hf);axes(hb); load modelo;%cargamos matriz modelo que contiene las imagenes del fantoma analitico r=modelo(:,:,i); m2=min(r(:));%Obtenemos valor maximo y minimo M2=max(r(:)); imr=(255/(M2-m2))*(m2-r)+255;%Elongacion r=imr; idx2a=find(r>=umbral(1) & r<=umbral(2));%Checamos los valores de la imagen que se

encuentran

25

%en los rangos especificados por el usuario idx2b=find(r<umbral(1) | r>umbral(2)); r(idx2a)=255;%Hacemos binaria la imagen r(idx2b)=0; imagesc(r);%graficamos segmentacion de imagen analitica axis image,colorbar Esta función nos permite visualizar el índice de similitud entre las dos imágenes:

fantoma físico y fantoma analítico. function Tanimoto_Callback(hObject, eventdata, handles) global i; global umbral1; global umbral2; load Imagen; img=Imagen(:,:,i); m1=min(img(:)); M1=max(img(:)); iml=(255/(M1-m1))*(m1-img)+255; img=iml; idx1a=find(img>=umbral1 | img<=umbral2); idx1b=find(img<umbral1 | img>umbral2); img(idx1a)=0; img(idx1b)=255; load model; r=model(:,:,i); m2=min(r(:)); M2=max(r(:)); imr=(255/(M2-m2))*(m2-r)+255; imgr=imr; idx2a=find(r>=umbral1 | r<=umbral2); idx2b=find(r<umbral1 | r>umbral2); imgr(idx2a)=0; imgr(idx2b)=255; despliega=(nnz(img.*imgr))/(nnz(img+imgr)); set(handles.text7, 'String', despliega);

26

Esta función nos permitió cerrar la IGU. function Cerrar_Callback(hObject, eventdata, handles) respuesta=questdlg('Esta seguro?','','si','no','si'); switch respuesta case 'no' %no hace nada case 'si' closereq; end

27

7. REFERENCIAS BIBLIOGRAFICAS.

- [1] Vincent L, Soille P. Watersheds in Digital Spaces: An Efficient Algorithm Based on Inmersion Simulations. IEEE Trans. Pattern Anal. Machine Intell 1991; 13:583-598.

- [2] Beucher S, Meyer F. The Morphological Approach to Segmentation: The

Watershed Transformation. In: Mathematical Morphology in Image Processing. New York, Marcel Dekker 1993;433-481.

- [3] Tesis de Doctorado de la profesora: Raquel Valdes C, UAMI 2003.

28