“Desarrollo de algoritmos de procesamiento de imágenes con VTK”

Slides:



Advertisements
Presentaciones similares
INGENIERÍA DE SOFTWARE Introducción Arquitectura de Software
Advertisements

Aplicación para la visualización de imágenes 2D y 3D empleando VTK
Pablo E. Quiñones G. Director: Leonardo Flórez Valencia Grupo de Investigación: TAKINA Modalidad: Aplicación Práctica.
EXTRACCIÓN DE CARACTERISTICAS
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
Conceptos Fundamentales
UML.
Unidad 3 MODELO DE ANALISIS.
Superficies de coste anisotrópicas C. Romo y J.C Torres Laboratorio de Realidad Virtual Universidad de Granada lrv.ugr.es.
INGENIERÍA DE SOFTWARE RODRÍGUEZ CADENA CYNTHIA VIRIDIANA GRANADOS HERNÁNDEZ ERICK METODOLOGÍA OMT.
Organizaciones involucradas: El centro de cálculo noruego. Crea lenguaje llamado Simula 67, desarrollado por Krinsten Nygaard y Ole-Johan Dahl, en 1967.
REPÚBLICA BOLIVARIANA DE VENEZUELA UNIVERSIDAD FERMÍN TORO – SEDE CABUDARE SISTEMA DE APRENDIZAJE INTERACTIVO A DISTANCIA REPÚBLICA BOLIVARIANA DE VENEZUELA.
Análisis de Proyecto de Software.
INGENIERÍA DE INFORMACIÓN Y APLICACIONES
Ingreso , proceso y salida de datos
GESTIÓN DEL RIESGO E INGENERÍA DE SOFTWARE BASADO EN COMPONENTES
El Lenguaje de Modelación Unificado
Ingeniería de requisitos y
DEPARTAMENTO DE ELÉCTRICA Y ELECTRÓNICA
Ingeniería de Software
Programación Orientada a Objetos
LENGUAJES Y REPRESENTACION TECNICA
Lenguajes y representación técnica
Conceptos y definición básicos
Andrea D. Arroyo C. - Christina E. Bravo B.
INTREGRANTES DE EQUIPO:
METODOLOGÍA DE SISTEMAS
Curso de Lenguaje de Modelado Unificado Multiplataforma Adaptativo basado en la Teoría de Respuesta al Item Margarita Rojas Rojas Pedro Salcedo Lagos.
Ingeniería de Sistemas Requerimientos
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno. INTRODUCCIÓN A UML  QUE ES UML?  PARA QUE SE UTILIZA  COMPONENTES  DIAGRAMAS.
Tema 3. Lenguaje unificado de modelado UML
Fundamentos de Ingeniería de Software MODELO DE CASOS DE USO
Continuación Unidad 4. Control de flujo
Metodología OOHDM Jairo Pinto Ing. sistemas.
Software Es intangible, existe como información, ideas, conceptos, símbolos, pero no ocupa un espacio físico, se podría decir que no tiene sustancia. Se.
MDA (Model Driven Architecture)
Continuación Unidad 4. Control de flujo
Resumen: Análisis de requerimientos
Introducción al modelado
INTRODUCCIÓN A JAVA.
Ingeniería del Software
INTRODUCCIÓN ING. IVONNE MALDONADO. PROGRAMACIÓN Programar no es mas que idear y ordenar las acciones. Lograr que un programa cumpla con una cierta tarea.
Introducción al lenguaje de programación. Introducción  Los lenguajes de programación son aplicaciones específicas que han sido pensadas y diseñadas.
Modelo de interacción de usuario.  El Desarrollo basado en modelos de la interfaz de usuario, en inglés Model-based User Interface Development (MB-UID),
Ciclo de Vida del Software
FUNDAMENTOS DE PROGRAMACION EN ENTORNO WEB. Rodrigo Cabello Ing. Informático Director de proyectos Think – Ideas in Motion FUNDAMENTOS.
EL SISTEMA OPERATIVO Es un conjunto de programas hechos para la ejecución de varias tareas, en las que sirve de intermediario entre el usuario y la computadora.
Unidad 5: Evaluación de los sistemas
Metodologías de Desarrollo de Software RUP – Proceso Racional Unificado Gilber BASILIO ROBLES I.E.S.T.P. “DANIEL ALCIDES CARRIÓN” Taller de Modelamiento.
DIAGRAMA DE COMPONENTES INTEGRANTES Córdova Vásquez Giovanny Escobar Alvares Calixto Gomez Quinteros Adelaida Pinto Flores Yarmila.
Programación Orientada a Objetos. ¿Qué es un ordenador? “Un sistema digital con tecnología microelectrónica capaz de procesar información a partir de.
software de dibujo vectorial para Microsoft Windows
Se hizo popular en la década de 1980 y todavía es utilizado por muchos. Consiste en interpretar el concepto del sistema (o situaciones del mundo real)
Teoría Nº 3 Conceptos Básicos de Algoritmia Estructuras de Control
1 Taller de Proyecto Tema 1. Metodología de desarrollo de software Rational Unified Process –RUP [1,2] Prof. Nora La Serna © Prof. Nora La Serna.
Casos de Uso Análisis de requisitos con casos de uso.
1 Introducción al proceso unificado de desarrollo de software.
CONTROLES Y ESTRUCTURAS BÁSICAS DE PROGRAMACIÓN  1. Algoritmos: conjunto de instrucciones programadas para resolver una tarea específica.  2. Datos:
PRESENTACION DE INGENIERIA ORIENTADA A OBJETOS. INTRODUCCION. ¿ Qué es UML ?. UML, por sus siglas en Ingles, Unified Modeling Languaje.(Lenguaje Unificado.
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno. INTRODUCCIÓN A UML  QUE ES UML?  PARA QUE SE UTILIZA  COMPONENTES  DIAGRAMAS.
Texturizado.
ALGEBRA RELACIONAL UNIDAD 3 ALGEBRA RELACIONAL. INTRODUCCIÓN Se forma a partir de la matemática formal Creada por Edgar Frank Codd en 1972 Concede comportamineto.
UNIVERSIDAD CATÓLICA LOS ÁNGELES DE CHIMBOTE AUTOR: Dominguez sosa, Bray limbert ASESORA: MGTR. ING. KARLA JUVICZA NEYRA ALEMÁN APLICACIÓN MÓVIL BASADA.
GC-F-004 V.01 CENTRO DE INDUSTRIA Y LA CONSTRUCCIÓN REGIONAL TOLIMA.
INTRODUCCIÓN A UML.  QUE ES UML?  PARA QUE SE UTILIZA  COMPONENTES  DIAGRAMAS.
PRUEBAS DE CAJA NEGRA. -Internationa Software Testing Qualification Board (ISTQB) Internationa Software Testing Qualification Board (ISTQB) Técnica de.
ICI 502 Procesos de Software
Luis Fernando Muñoz Pantoja Ingeniero de Sistemas Copyright 2019 Luis Fernando Muñoz Pantoja Ingeniero de Sistemas Derechos reservados UML.
La Metodología Kimball, es una metodología empleada para la construcción de un almacén de datos (data warehouse, DW) que no es más que, una colección de.
Transcripción de la presentación:

“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