aplicación para la visualización de imágenes 2d y 3d empleando vtk
DESCRIPTION
Aplicación para la visualización de imágenes 2D y 3D empleando VTK. Nuria Paniagua. Sumario del proyecto. Objetivos Imágenes *.pic obtenidas del confocal Reconstrucción de imágenes 3D VTK (Visualization Toolkit) Reconstrucción de imágenes con VTK Algoritmo visualización 2D y 3D - PowerPoint PPT PresentationTRANSCRIPT
GVA-ELAI-UPM-PFC083-041
Aplicación para la visualización de imágenes 2D y 3D empleando VTK
Nuria Paniagua
GVA-ELAI-UPM-PFC083-042
Sumario del proyecto
1. Objetivos2. Imágenes *.pic obtenidas del confocal3. Reconstrucción de imágenes 3D4. VTK (Visualization Toolkit)5. Reconstrucción de imágenes con VTK
Algoritmo visualización 2D y 3D6. Aplicación GUI con MFC
Ventana de visualización de imágenes 2D y 3D
GVA-ELAI-UPM-PFC083-043
1. Objetivos
Reconstrucción tridimensional Funcionamiento y uso de librerías VTK Algoritmo de visualización 2D y 3D Aplicación GUI a partir de MFC
GVA-ELAI-UPM-PFC083-044
2. Imágenes *.pic obtenidas del confocal
1. Microscopia confocal2. Obtención de imágenes 3D
GVA-ELAI-UPM-PFC083-045
2.1 Microscopia confocal
Microscopio óptico
Microscopio confocal
GVA-ELAI-UPM-PFC083-046
Microscopio confocal
– Diafragma de detección (elimina luz del plano focal)
– Diafragma de iluminación
GVA-ELAI-UPM-PFC083-047
2.2 Obtención de imágenes 3D
1. Adquisición de imágenes 3D con el microscopio confocal
2. Archivos *.pic
GVA-ELAI-UPM-PFC083-048
Obtención de imágenes 3D obtenidas del confocal
Imágenes obtenidas del confocal son siempre imágenes digitales
Los fotodetectores transforman la señal lumínica en señal eléctrica que mediante el sistema informático acoplado se traduce en un píxel
Píxel:– Localización tridimensional del punto excitado– La intensidad lumínica de dicho punto
Almacenamiento de imágenes digitales en ficheros gráficos
GVA-ELAI-UPM-PFC083-049
Archivos *.pic
Ficheros gráficos que almacenan imágenes digitalizadas
Formato:– Cabecera: datos relativos al gráfico que se almacena (ancho,
alto,relación entre píxel y unidad de medida, unidad de medida, tipo de imagen (color o blanco y negro), codificación del color, método de compresión si lo hay)
– Datos del gráfico o de la imagen digitalizada. Almacenan:
– Imagen digitalizada por fichero en tonos de gris o en color– Secuencia de imágenes en cada fichero
GVA-ELAI-UPM-PFC083-0410
Secuencia de imágenes
Formato del fichero:– Cabecera: 6 enteros (4 bytes cada uno)– Slices: cada una de las imágenes que contiene el
fichero (en tonos de gris) Formato de los datos de las imágenes:
– Matriz de bytes sin comprimir, por cada unos de los diferentes slices que componen la imagen,donde se almacena el valor de los píxeles por filas
GVA-ELAI-UPM-PFC083-0411
Posición y significado de cada byte
GVA-ELAI-UPM-PFC083-0412
3. Reconstrucción de imágenes 3D
1. Introducción2. Fases de la reconstrucción tridimensional
GVA-ELAI-UPM-PFC083-0413
3.1 Reconstrucción tridimensional
Visualización de datos basada en el uso de algoritmos que transformen estos
Clasificación de algoritmos según: Estructura: efectos que la transformación tiene en la
topología y geometría del dataset Tipo: tipo de dataset sobre el que operan los algoritmos
– Escalares: técnica de contorneado
GVA-ELAI-UPM-PFC083-0414
Técnica de contorneado
Construir límites entre regiones distintas de valores de datos constantes
Estos límites corresponden a líneas de contorno (en 2D) y superficies (en 3D)
GVA-ELAI-UPM-PFC083-0415
3.2 Fases de la reconstrucción tridimensional
a) Marching cubesb) Reducción puntos de malladoc) Suavizado del mallado
GVA-ELAI-UPM-PFC083-0416
a) Marching cubes
Cada punto de la malla del dataset tiene un valor escalar asociado
Cada superficie tiene un valor de contorno constante
Un contorno sólo puede atravesar una celda de un número finito de formas
Se elabora una tabla de casos que enumera todos los estados topológicos posibles de una celda, dadas las combinaciones de valores escalares en los puntos de la celda
GVA-ELAI-UPM-PFC083-0417
b) Reducción de puntos de mallado
A 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
La interpolación en cada arista debe realizarse en la misma dirección
– Si no se cumple, pueden generarse puntos que no coincidan exactamente debido al redondeo numérico, y no serán fusionados correctamente
GVA-ELAI-UPM-PFC083-0418
c) Suavizado del mallado
Para una celda existen 256 combinaciones de valores escalares dadas por los estados de los 8 vértices
Pueden reducirse a 15 por rotaciones y simetrías– Aparecen casos ambiguos en el contorneo– Pueden aparecer “huecos” en la superficie
según el caso elegido
GVA-ELAI-UPM-PFC083-0419
4. VTK (Visualization Toolkit)
1. VTK2. CMake3. Arquitectura de VTK en C++
GVA-ELAI-UPM-PFC083-0420
4.1 VTK
Librerías de código libre basadas en la programación orientada a objetos
Subsistemas componentes:– Librería de clases en C++– Intérpretes para la manipulación de las clases
Visualización, procesamiento de imágenes, creación de objetos gráficos en 2D y 3D
GVA-ELAI-UPM-PFC083-0421
4.2 CMake
Herramienta multiplataforma de código libre Configurar y dirigir proceso de construcción de
aplicaciones Ficheros CMakeLists.txt para describir proceso de
construcción y establecer dependencias Crea ficheros necesarios para compilar la aplicación Compilar VTK y trabajar con herramientas propias de
la plataforma empleada
GVA-ELAI-UPM-PFC083-0422
4.3 Arquitectura de VTK
Modelos de objetos:
a) Graphics model
b) Visualization model
GVA-ELAI-UPM-PFC083-0423
a) Graphics model
Transformación de datos gráficos en imágenes
Objetos principales:– vtkActor– vtkCamera– vtkLight– vtkMapper– vtkRenderer– vtkRenderWindow– vtkRenderWindowInteractor
GVA-ELAI-UPM-PFC083-0424
b) Visualization model
Crea datos gráficos a partir de la información aportada
Objetos principales:– vtkDataObject: Datos estructurados llamados
dataset (estructura geométrica y topológica de puntos y celdas y atributos asociados)
– Process object: Algoritmos del sistema llamados filtros. Junto con los anteriores porman los pipelines de visualización
GVA-ELAI-UPM-PFC083-0425
Tipos de process objects
a) Fuentes: Generan datos leyendo o construyendo uno o más data objects
b) Filtros:Transforman varios data objects en la entrada, y generar uno o más data objects en la salida
c) Mappers: Transforman los data objects en datos gráficos, que son renderizados posteriormenteSe enlazan formando el pipeline
GVA-ELAI-UPM-PFC083-0426
Pipeline
renderfuente > 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 por el actor
GVA-ELAI-UPM-PFC083-0427
5 Reconstrucción de imágenes con VTK
Creación de imágenes tridimensionales a partir de imágenes bidimensionales de cortes transversales
Programa para visualizar, por separado o conjuntamente, las diferentes superficies que componen un cuerpo
Construcción de un pipeline genérico útil para diferentes casos
GVA-ELAI-UPM-PFC083-0428
Creación de una aplicación
1. Construir un pipeline de datos para procesar los datos:
– Conectar: Fuentes (crear datos) Filtros (procesar datos) Mappers (transformar datos en gráficos)
GVA-ELAI-UPM-PFC083-0429
Creación de una aplicación
2. Crear los objetos gráficos para interpretar esos datos:– Ventada de renderización para trabajar en ella– Render– Interactor (interactuar con los datos)– Uno o más actores (cada uno unido a un
mapper)– Renderizar
GVA-ELAI-UPM-PFC083-0430
Algoritmo visualización 2D y 3D
GVA-ELAI-UPM-PFC083-0431
Algoritmo visualización 2D y 3D
GVA-ELAI-UPM-PFC083-0432
6. Aplicación GUI con MFC
1. Introducción2. Programación con Visual C++3. Librería de clases MFC
GVA-ELAI-UPM-PFC083-0433
6.1 GUI
GUI (Interfaz gráfica de usuario) Windows (entorno multitarea basado en
ventanas, que representan programas) Desarrollo de programas mediante una librería
de rutinas y funciones que permiten gestionar componentes como menús, diálogos, ventanas, etc.
GVA-ELAI-UPM-PFC083-0434
6.2 Programación con Visual C++
Entorno integrado de desarrollo que permite la programación orientada a objetos (POO) conjuntamente con el sistema de desarrollo de Windows denominado API
Incluye herramientas de desarrollo como un editor de texto, compilador,depurador, visor de datos y pendencias, etc