“Desarrollo de algoritmos de procesamiento de imágenes con VTK” Autor: Ignacio Berzal Moreno GVA-ELAI.UPM
Objetivos: Visión general de las herramientas de visualización de imágenes Estudio de VTK Reconstrucción 3D (Marching Cubes) Visualización 3D de imágenes biomédicas obtenidas con microscopio confocal Técnicas de filtrado de difusión Desarrollo de una aplicación según el modelo UML GVA-ELAI.UPM
1- HERRAMIENTAS DE VISUALIZACIÓN DE IMÁGENES MATLAB SDC ITK Openmoxis MPI VTK Paraview GVA-ELAI.UPM
VTK (Visualization Toolkit) Librerías de código libre basadas en la programación orientada a objetos Visualización, procesamiento de imágenes, creación de objetos gráficos en 2D y 3D Constituido por dos subsistemas: Librería de clases en C++ “Intérpretes” para la manipulación de las clases en Java, Tcl/Tk y Python GVA-ELAI.UPM
Instalación de VTK Instalación binaria Instalación del código fuente Realizar aplicaciones mediante librerías precompiladas Recomendada para usuarios Ventaja: Rápida instalación Instalación del código fuente Elaborar librerías propias Recomendada para creadores de software Inconveniente: Instalación lenta Ventaja: mejora tiempo de compilación GVA-ELAI.UPM
Arquitectura de VTK Modelos de objetos: Graphics model Transforma datos gráficos en imágenes Visualization model Crea datos gráficos GVA-ELAI.UPM
Graphics model Objetos principales: vtkActor: representa el objeto renderizado vtkCamera: posición y orientación de la imagen vtkMapper: representación geométrica del actor vtkRenderer: controla la renderización vtkRenderWindow:ventana de renderización vtkRenderWindowInteractor: interactua con la escena GVA-ELAI.UPM
Visualization model Tipos básicos de objetos: vtkDataObject: Conjunto genérico de datos Si están estructurados se llaman dataset vtkProcessObject: Fuentes: Construyen o leen los data objects Filtros: Conectan los data objects Mappers: transforman los data objects en datos gráficos Se enlazan formando un pipeline GVA-ELAI.UPM
Ejecución del pipeline render fuente > filtro > mapper > actor - El render inicia la petición de datos, que se comunica a través del pipeline - Las partes del pipeline que no estén actualizadas son reejecutadas - Una vez actualizados los datos al final del pipeline, son rederizados a travès del actor GVA-ELAI.UPM
Creación de una aplicación 1. Construir un pipeline de datos para procesar los datos: - Conectar fuentes, filtros y mappers 2. Crear los objetos gráficos para interpretar esos datos: - Crear una ventada de renderización, un render, y un interactor - Renderizar GVA-ELAI.UPM
2- FASES DE LA RECONSTRUCCIÓN 3D Conversión del dominio de adquisición al mallado (marching cubes) Reducción de puntos de mallado GVA-ELAI.UPM
Conversión del dominio de adquisición al mallado (marching cubes) Cada superficie tiene un valor de contorno constante El dataset de la imagen se divide en una malla de celdas tridimensionales, con un valor escalar en cada punto Se elabora una tabla de casos que enumera todos los estados topológicos posibles de una celda, según los valores escalares de sus puntos GVA-ELAI.UPM
Pasos de marching cubes Cálculo del estado interior o exterior de cada vértice de una celda Creación de un índice con el estado binario de cada vértice en un bit separado (8 bits) Uso del índice para buscar el estado topológico de la celda en la tabla de casos Cálculo de la posición de la superficie (por interpolación) para cada arista según la tabla de casos Paso a la siguiente celda GVA-ELAI.UPM
Reducción de puntos de mallado Al tratar cada celda por separado pueden crearse vértices y aristas duplicados en los límites comunes Se eliminan empleando una técnica de fusión de puntos coincidentes GVA-ELAI.UPM
3- APLICACIONES SOBRE UNA PILA DE IMAGENES DEL CONFOCAL Creación de imágenes tridimensionales, a partir de imágenes en dos dimensiones de cortes transversales obtenidas mediante un microscopio confocal Construcción de un pipeline genérico útil para diferentes casos GVA-ELAI.UPM
Pipeline de pila de imagen El filtro DataSpacing describe el valor de cada píxel y la distancia entre los cortes DataVOI selecciona la región de interés SetTransform define como disponer el dato en memoria para que el modelo resultante se vea de frente, manteniendo la correspondencia derecha-izquierda GVA-ELAI.UPM
GVA-ELAI.UPM
GVA-ELAI.UPM
Filtrado dependiente de las características del area a procesar Tipos: 4- FILTRADO DE DIFUSIÓN Filtrado dependiente de las características del area a procesar Tipos: Isotrópico: Acentúa el proceso de difusión en las zonas homogéneas y preserva los bordes Anisotrópico: Realiza un realce puntual del ruido GVA-ELAI.UPM
Combinación de difusión isotrópica y anisotrópica Útil en imágenes con mucho ruido Eliminación previa del ruido con difusión isotrópica Realce posterior de patrones en el ruido con difusión anisotrópica GVA-ELAI.UPM
Resultados combinados (en 2D) - Imagen ruidosa - Imagen filtrada GVA-ELAI.UPM
Resultados combinados (en 3D) - Imagen original - Imagen filtrada GVA-ELAI.UPM
5- APLICACIÓN “DIFUSIÓN2D3D” Aplicación software para visualización y filtrado de imágenes 2D y 3D Implementada en lenguaje C++ con VTK Creada mediante modelado UML GVA-ELAI.UPM
Modelado UML (Lenguaje Unificado de Modelado): Objetivos Representar sistemas completos, no sólo la parte software, usando conceptos orientados a objetos Establecer relaciones explícitas entre conceptos y código ejecutable Crear un lenguaje de modelado utilizable por humanos y máquinas Visualizar, especificar, construir y documentar los productos de un sistema software GVA-ELAI.UPM
Modelado visual Capturar las partes esenciales del sistema, mediante la abstracción Plasmación mediante notación gráfica Ventajas: Mayor rigor en la especificación Verificación y validación del modelo Independencia del lenguaje de implementación GVA-ELAI.UPM
Diagramas UML Representación gráfica de un conjunto de elementos con sus relaciones Casos de uso: Interacción con el sistema Clases: Relaciones entre las clases Secuencia: Interacción entre los objetos GVA-ELAI.UPM
Herramienta Rational Rose Herramienta CASE para el modelado visual con UML Permite especificar, analizar y diseñar el sistema antes de codificarlo Generación de código a partir de los modelos Ingeniería inversa GVA-ELAI.UPM
Aplicación “difusión2D3D” : Documentación Visión y alcance: carácterísticas principales, requerimientos, etc Casos de uso: requisitos funcionales. Actores, curso de éxito, excepciones, etc GVA-ELAI.UPM
Casos de uso de la aplicación Visualizar 2D Visualizar 3D Filtrar Difusión 2D Filtrar Difusión 3D GVA-ELAI.UPM
Creación de la aplicación mediante Rational Rose Creación del proyecto Creación de casos de uso Elaboración de diagramas UML Generación de código Ingeniería inversa GVA-ELAI.UPM
GVA-ELAI.UPM
GVA-ELAI.UPM
Clases de la aplicación GVA-ELAI.UPM
Clases de visualización / filtrado 2D Parámetros de visualización: Nombre de la imagen en 2D con extensión .jpg Parámetros de filtrado de difusión: Factor de difusión Umbral de difusión Número de iteraciones GVA-ELAI.UPM
Clases de visualización / filtrado 3D Mismos parámetros que en las clases 2D, añadiendo: El archivo de imagen debe ser de extensión .pic Indicar el número de rodajas para formar la imagen 3D ( primera y última) GVA-ELAI.UPM
Clase vistaFiltradoDifusión2D3D Encargada de gestionar el programa Interacciona con el usuario mediante un menú de opciones Accede al resto de clases y establece sus parámetros GVA-ELAI.UPM
6- CONCLUSIONES Aportaciones Futuras mejoras GVA-ELAI.UPM
Aportaciones Análisis de VTK como herramienta de visualización La reconstrucción y filtrado de imágenes 3D tiene gran interés en el campo de la biomedicina Importancia del modelado UML en la ingeniería del software (reutilización de código) GVA-ELAI.UPM
Mejoras Estudio de otras herramientas de visualización distintas de VTK, y comparativa Ahondar en el estudio de las técnicas de filtrado y reconstrucción de imágenes GVA-ELAI.UPM
Mejoras en la aplicación “difusión2D3D” Creación de un GUI (Grafical User Interface) para interaccionar con el usuario Procesamiento distribuido del filtrado de difusión Utilización de otros tipos de filtros GVA-ELAI.UPM