Filtrado de imágenes medicas 3D
Transcripción
Filtrado de imágenes medicas 3D
Universidad de Sevilla Procesamiento de Imágenes Digitales Filtrado de imágenes medicas 3D Gregory Caridi Louise Guillebaud Irene Martínez Martínez Profesores : M. María DEL ROCIO GONZALEZ DIAZ M. María José JIMENEZ RODRIGUEZ; 14 enero 2016 Índice general 1. Resumen 2 2. Introducción 3 3. Planteamiento teorico 4 4. Resolución práctica 6 5. Experimentación 8 6. Manual de usuario 9 7. Conclusiones 11 1 Capítulo 1 Resumen En este artículo presentamos una aplicación diseñada para hacer un proceso de filtrado de imágenes médicas tridimensionales PET. Para ello será necesario desarrollar una aplicación en la que sea posible abrir una imágen de este tipo, procesarla realizando la máscara, tanto automáticamente como de manera manual, dando la posibilidad al usuario de modificar en cualquier momento la máscara, y mostrar los resultados visuales en forma tridimensional. Usaremos dos artículos científicos12 para estudiar las distintas opciones que se han llevado a cabo en este tema y coger ideas de cómo podemos abordar el problema. 1 Myungeun Lee ,Wanhyun Cho,Sunworl Kim,Soonyoung Park, Jong Hyo Kim, "Segmentation of interest region in medical volume images using geometric deformable model.", Computers in Biology and Medicine, Vol. 42, Issue 5, May 2012, pp 523–537. 2 P. Castro, C. Huerga, L.A. Glaría, R. Plaza, S. Rodado, M.D. Marín, A. Mañas, A. Serrada, L. Núñez, "Target volume segmentation of PET images by an iterative method based on threshold value.", Revista Española de Medicina Nuclear e Imagen Molecular, Vol. 33, , Issue 6, November–December 2014, pp 331-339. 2 Capítulo 2 Introducción En este trabajo nos enfocamos en el tratamieto de imágenes médicas PET, a las que realizaremos un proceso de enmascaramiento de algunas partes conflictivas de las imágenes producidas por los restos de fluidos médicos utilizados en los pacientes. La acumulación de estos fluídos provoca que los niveles de las imágenes DICOM1 al componerlas varíen y dificulte la visualización correcta de los resultados médicos. 1 Extension de imagenes medicas 3 Capítulo 3 Planteamiento teorico En el trabajo vamos a tratar las imágenes médicas obtenidos en los estudios PET para impedir que las posibles distorsiones en las zonas de interés dificulten el análisis de los resultados por parte de los médicos. Estas distorsiones, que se ven como manchas oscuras en la imágen, vienen provocadas por la acumulación de residuos médicos utilizados para la realización de los estudios PET en algunas zonas del cuerpo, un ejemplo típico de esto puede ser la vejiga, donde se acumulan los residuos antes de ser expulsados del cuerpo. También pueden ser el resultado de algunas situaciones médicas de los pacientes que los doctores ya conocen, y que por tanto, no son de interés para el análisis de los resultados. Estas distorsiones tienen fácil arreglo para las imágenes 2D, pues es suficiente con marcar la zona en cuestión y quitarla de la imágen, de manera que los pixeles con estos niveles tan bajos no interfieran a la hora de montar la imágen. (a) Antes el procesado (b) Despues el procesado Figura 3.1: Procesado para las imágenes 2D El problema viene a la hora de montar las imágenes 3D, ya que si intentamos quitar una zona de una de las capas, esto podría provocar una distorsión a la hora de hacer el montaje en el resto de capas 4 que también dificultaría la visualización de los resultados. Para intentar dar solución a este problema, vamos a explicar un proceso que consta de tres partes claramente distinguibles. Hacer una búsqueda, ya sea de manera automática o manual, de un punto inicial situado en la zona problemática de la imágen. Para ello, hay que dividir la imágen tridimensional en capas, y dentro de cada capa hay que buscar el punto con el nivel más bajo en la escala de grises. Una vez obtenemos este punto, interesa guardar la capa en la que se encuentra junto con la fila y la columna que ocupa dentro de la misma. Realizar una segmentación en 3D de la zona. Esto se hará buscando, a partir del punto inicial, los bordes de la zona comparando los niveles en la escala de grises de los pixeles vecinos. Este proceso se hará no sólo en la capa donde se encuentra el punto inicial, sino también en las capas vecinas hasta encontrar una forma tridimensional que contiene la zona problemática. Una vez delimitada la zona que queremos procesar, hay que sustituir el valor de los pixeles de la zona por un valor que no interfiera con los niveles de la imágen a la hora de hacer el montaje de la misma, como por ejemplo un valor medio o el valor de fondo de la imágen. En particular hemos intentado crear una aplicación con una interfaz fácilmente utilizable en la que el usuario (en este caso el médico) puede realizar las siguientes operaciones: Cargar la imágen deseada en la aplicación para visualizarla o procesarla. Este archivo debe ser necesariamente una imágen con extensión .dcm (DICOM). Visualizar en dos dimensiones todas las imagenes de una imagen DICOM con respecto a un eje. Aunque las imágenes se encuentran en 2D, se crea un efecto tridimensional al deslizar un slider situado en la parte inferior de la imágen con el que se van visualizando todas las imágenes en orden. Encontrar el punto de la imágen con el valor más bajo en la escala de grises, es decir, se vería un punto de color oscuro, muy cercano al negro. Procesar de manera automática la imágen para que corrija las posibles distorsiones que pueda tener y mejorar la visualización de la misma. Procesar de manera manual la imágen siguiendo un par de pasos. Primeramente, buscar de entre todas las capas el punto deseado con el que se desea iniciar el proceso. A continuación, marcar dicho punto y ejecutar la segmentación de la imágen para la zona que rodea al punto. Ver paso a paso cómo se ejecuta la aplicación, de manera que se va visualizando las modificaciones que se van realizando sobre la imágen. Guardar la imágen resultante de ejecutar la aplicación. Esta imágen se guardará también con extensión DICOM. 5 Capítulo 4 Resolución práctica Para la implementación de nuestra aplicación hemos decidido usar Matlab, por su potencia a la hora del procesado de imágenes digitales. Se trata de un entorno de desarrollo integrado (IDE) con un lenguaje de programación propio (lenguaje M). Dispone una herramienta adicional que expande sus prestaciones llamada GUIDE, que hemos utilizado como editor de interfaces de usuario (GUI). A pesar de disponer de un toolbox adicional específico para tratamiento de imágenes, no lo hemos utilizado. Hemos reutilizado ciertas funciones implementadas por otros programadores y hemos programado el resto del código utilizando las librerías básicas del sistema. El código de la aplicación se estructura en el siguiente árbol: interfaz.m Es la interfaz principal de la aplicación. Consta de varias funciones (a parte de las que interactuan con la interfaz), implementadas por los integrantes del presente artículo cuyo funcionamiento explicaremos a continuación. • function cargarImagen() Se activa cuando pulsamos el botón de la aplicación para abrir una imágen. • function calculaPuntoInicial() Esta función obtiene de manera automática la capa, fila y columna en la que se encuentra el punto con el que se empieza a procesar la imágen. Para ello es necesario pasarle la imágen descompuesta en capas y cierta información de la misma como puede ser el número de capas que tiene. • function manualPoint() Si decidimos procesar la imágen de manera manual será necesario hacer uso de esta función. Su finalidad principal es capturar el punto que ha marcado el usuario en la imágen desde la interfaz y guardar sus coordenadas. • function searchSegment() Una vez obtenido el punto inicial, se realiza la búsqueda de la forma 3D que queremos corregir con esta función. Como parámetros de entrada necesita las coordenadas del punto 6 inicial y la imágen. Una vez termina el proceso de búsqueda se tendrá un conjunto de pixeles contenidos en la zona problemática. • function modifySegment() Con esta función se modificarán los valores del conjunto de pixeles, que se le pasa como entrada junto con la imágen, sustituyendolos por 0 (nivel que tiene el fondo de la imágen). Tras modificarlos devolverá una nueva imágen con los nuevos niveles de la escala de grises. 7 Capítulo 5 Experimentación Para testear la aplicación se han realizado numerosas pruebas con las imágenes que nos había mandado Eduardo y las de la profesora. Pero como no hemos terminado la aplicación, no podemos exponer aqui las pruebas ya que no hemos logrado guardar las imagenes modificadas. (a) Antes el procesado (b) Despues el procesado Figura 5.1: Modificación de la zona 8 Capítulo 6 Manual de usuario Para poder hacer uso de nuestra aplicación, es indispensable que la máquina donde se vaya a instalar dispone de Matlab, si no, se tendrá que hacer una instalación previa de este software. A continuación, la interfaz gráfica es muy sencilla y se divide en dos partes. A la derecha, tenemos los butones Çargar imagen"(1) y Reiniciar"(2); a la izquierda, "Proceso Automático"(3), "Proceso Manual"(4), "Paso a paso"(5) y por fin "Guardar Imagen"(6). Figura 6.1: Representación gráfica de la aplicación Para poner en funcionamiento nuestra aplicación, cargamos las imágenes DICOM que queremos procesar. Para ello pulsamos el boton Çargar imagen". Se nos abrirá un cuadro de diálogo, y el usario tendra que selectionar sus imagenes DICOM. Una vez cargadas nuestras imágenes tendramos estas diferentes opciones para hacer el procesamiento: Podemos pulsar el boton "Procesamiento automatico"para hacer un procesamiento sin mirar a las imagenes primero. 9 Podemos pulsar el boton "Procesamiento manual". Asi el usario tiene que mirar las diferentes capas que tiene y selectionar la zona que le interesa para hacer el procesamiento. Podemos pulsar el boton "Paso a paso"para ver cada una de las etapas realizadas por la aplicacion. Podemos pulsar el boton "Guardar imagen"para guardar la imagen procesada. 10 Capítulo 7 Conclusiones Hemos encontrado muchas dificultades durante este proyecto. Al principio, no sabíamos cómo ejecutar nuestras imágenes, esto se debe a que su formato es DICOM. En el periodo inicial, la mayor parte del tiempo destinado se ha utilizado para intentar ver estas imágenes en 3D, una idea que luego abandonamos. La visualización de imágenes en 3D, aún es posible con algunos software (como OsiriX o RadiAnt DICOM View), pero no ha sido posible lograr este objetivo con Matlab. Después de esta primera dificultad, hemos tenido algunos problemas con el código, principalmente con la expansión del procesamiento realizada en una capa con respecto a las capas anteriores y siguientes. Del mismo modo, no esperabamos ningún problema para realizar la interfaz gráfica, porque hemos utilizado una herramienta relativamente simple de uso con Matlab, pero resultó que para hacer un slider que mostrara todas las imágenes DICOM no era tan simple. Por otro lado, el proyecto que teníamos que hacer estaba muy poco documentado en Internet, ya que se refiere a un formato de imagen que sólo se utiliza en el caso de exámenes médicos. Así que no podíamos encontrar una gran cantidad de información que nos resolviera las cuestiones que iban surgiendo mientras se desarollaba el trabajo. En una vision general del proyecto, podemos concluir, que no se ha conseguido implementar todas las funcionalidades originalmente previstas, debido en parte a la pérdida de tiempo en el inicio del proyecto con la manipulación del formato de las imágenes. Por lo cual con un poco más de tiempo, podríamos acabar el proyecto con todas las características previstas. Sin embargo, estamos satisfechos con el resultado, aunque el proyecto puede ser mejorados. 11 Bibliografía [1] Myungeun Lee ,Wanhyun Cho,Sunworl Kim,Soonyoung Park, Jong Hyo Kim, "Segmentation of interest region in medical volume images using geometric deformable model.", Computers in Biology and Medicine, Vol. 42, Issue 5, May 2012, pp 523–537. [2] P. Castro, C. Huerga, L.A. Glaría, R. Plaza, S. Rodado, M.D. Marín, A. Mañas, A. Serrada, L. Núñez, "Target volume segmentation of PET images by an iterative method based on threshold value.", Revista Española de Medicina Nuclear e Imagen Molecular, Vol. 33, , Issue 6, November–December 2014, pp 331-339. 12 Anexo I: Tabla de tiempos Hoja de tiempo de grupo Fecha Comienzo Fin Delta tiempo Actividad 13:10 Tiempo interrupción 10 20/11/2015 10:30 150 8:30 11:00 30 120 01/12/2015 2/12/2015 2/12/2015 4/12/2015 9/12/2015 11/12/2015 16:00 10:30 10:30 8:30 10:30 8:30 18:20 13:10 13:10 10:30 13:10 10:30 20 10 10 30 10 30 120 150 150 120 150 120 16/12/2015 18/12/2015 10:30 8:30 13:10 10:30 10 30 150 120 22/12/2015 29/12/2015 30/12/2015 31/12/2015 10:30 16:00 16:00 10:00 13:10 18:20 18:20 12:00 10 20 20 0 150 120 120 120 8/01/2016 20:00 22:20 20 120 9/1/2016 10:30 13:10 10 150 Buscar y estudiar unos articulos de investigación Estudio y valoración de TDA Aprendizaje de Matlab Aprendizaje de Matlab Aprendizaje de Matlab Aprendizaje de Matlab Desarollo aplicación Elaboración documentacion Desarollo aplicación Elaboración documentación Desarollo aplicación Testeo aplicación Testeo aplicación Elaboración presentación Elaboración documentación Elaboración presentación 27/11/2015 Hoja de tiempos de Gregory Caridi Fecha Comienzo Fin Delta tiempo Actividad 15:40 Tiempo interrupción 15 26/11/2015 12:30 175 16:30 8:00 20:00 19:30 10:00 00:30 0 0 30 180 120 240 12/12/2015 12:30 15:40 15 175 13/12/2015 20:00 00:30 30 240 20/12/2015 16:30 19:30 0 180 Buscar y estudiar unos articulos de investigación Aprendizaje matlab Desarollo de aplicación Buscar metodo para abrir imagenes DICOM Buscar metodo para abrir imagenes DICOM Buscar metodo para abrir imagenes DICOM Buscar metodo para abrir imagenes DICOM 30/11/2015 1/12/2015 8/12/2015 13 21/12/2015 8:00 10:00 0 120 27/12/2015 10:00 15:00 2 120 28/12/2015 16:30 19:30 0 180 3/01/2016 4/01/2016 5/01/2016 10:00 20:00 8:00 15:00 00:30 10:00 2 30 0 120 240 120 7/01/2016 16:30 19:30 0 180 Elaboración documentación Elaboración documentación Elaboración documentación Desarollo de aplicación Testeo aplicación Elaboración documentación Elaboración presentación Hoja de tiempos de Irene Martinez Martinez Fecha Comienzo Fin Delta tiempo Actividad 11:40 Tiempo interrupción 15 24/11/2015 8:30 175 12:30 12:00 17:00 15:30 14:00 21:30 0 0 30 180 120 240 8/12/2015 8:30 11:40 15 175 21/12/2015 22/12/2015 27/12/2015 28/12/2015 2/12/2016 3/01/2016 4/01/2016 5/01/2016 20:00 12:30 12:00 10:00 12:30 10:00 17:00 12:00 00:30 15:30 14:00 15:00 15:30 15:00 21:30 14:00 30 0 0 2 0 2 30 0 240 180 120 120 180 120 240 120 7/01/2016 8/01/2016 12:30 12:30 15:30 15:30 0 0 180 180 07/01/2016 12:30 15:30 0 180 11/01/2016 10:00 15:00 2 120 Buscar y estudiar unos articulos de investigación Aprendizaje matlab Aprendizaje matlab Buscar metodo para abrir imagenes DICOM Buscar metodo para abrir imagenes DICOM Desarollo de aplicación Desarollo de aplicación Desarollo de aplicación Desarollo de aplicación Desarollo de aplicación Desarollo de aplicación Testeo aplicación Elaboración documentación Testeo aplicación Elaboración presentación Elaboración presentación Elaboración documentación 30/11/2015 1/12/2015 7/12/2015 14 Hoja de tiempos de Louise Guillebaud Fecha Comienzo Fin Delta tiempo Actividad 14:40 Tiempo interrupción 0 29/11/2015 12:30 130 10:30 12:00 0 90 17:40 16:00 23:10 22:15 15:20 22:00 11:35 22:50 10:40 21:30 16:00 19:30 10:00 16:00 16:00 10:30 20:20 18:20 01:00 00:40 17:20 02:35 13:20 02:30 12:00 00:45 18:20 02:00 15:30 18:20 18:20 15:30 0 20 15 0 20 35 10 30 5 20 10 60 40 20 20 60 120 120 95 145 100 240 95 190 75 175 130 330 310 120 120 240 Buscar y estudiar unos articulos de investigación Estudio y valoración de TDA Aprendizaje de Matlab Aprendizaje de Matlab Aprendizaje de Matlab Aprendizaje de Matlab Documentación Documentación Aprendizaje de Matlab Desarrollo de aplicación Desarrollo de aplicación Desarrollo de aplicación Documentación Aprendizaje de Matlab Testeo Aplicación Aprendizaje de Matlab Testeo Aplicación Documentación 30/11/2015 05/12/2015 06/12/2015 10/12/2015 13/12/2015 17/12/2015 18/12/2015 19/12/2015 20/12/2015 22/12/2015 03/01/2016 05/01/2016 07/01/2016 08/01/2016 01/12/2015 01/12/2015 09/01/2016 Hoja de tiempos por trabajo Actividad Buscar y estudiar articulos de investigación Aprendizaje matlab Estudio y valoración del TDA Desarollo aplicación Elaboración documentación Testeo aplicación Elaboración aplicación Buscar metodo para abrir imagenes DICOM Delta tiempo [min] 630 Delta tiempo [h] 10,5 1775 210 2090 1850 1610 1120 1250 29,6 3,5 34,8 30,8 26,8 18,7 20,8 15 Figura 7.1: Procesado para las imágenes 2D 16