Download Presentación de PowerPoint

Document related concepts
no text concepts found
Transcript
Aplicación para la visualización de
imágenes 2D y 3D empleando VTK
Nuria Paniagua
1
GVA-ELAI-UPM-PFC083-04
Sumario del proyecto
1.
2.
3.
4.
5.
Objetivos
Imágenes *.pic obtenidas del confocal
Reconstrucción de imágenes 3D
VTK (Visualization Toolkit)
Reconstrucción de imágenes con VTK

6.
Aplicación GUI con MFC

2
Algoritmo visualización 2D y 3D
Ventana de visualización de imágenes 2D y 3D
GVA-ELAI-UPM-PFC083-04
1. Objetivos




3
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-04
2. Imágenes *.pic obtenidas del
confocal
1.
2.
4
Microscopia confocal
Obtención de imágenes 3D
GVA-ELAI-UPM-PFC083-04
2.1 Microscopia confocal
5

Microscopio óptico

Microscopio confocal
GVA-ELAI-UPM-PFC083-04
Microscopio confocal
–
–
6
Diafragma de
detección (elimina
luz del plano focal)
Diafragma de
iluminación
GVA-ELAI-UPM-PFC083-04
2.2 Obtención de imágenes 3D
1.
2.
7
Adquisición de imágenes 3D con el
microscopio confocal
Archivos *.pic
GVA-ELAI-UPM-PFC083-04
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:
–
–

8
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-04
Archivos *.pic


Ficheros gráficos que almacenan imágenes
digitalizadas
Formato:
–
–

Almacenan:
–
–
9
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.
Imagen digitalizada por fichero en tonos de gris o en color
Secuencia de imágenes en cada fichero
GVA-ELAI-UPM-PFC083-04
Secuencia de imágenes

Formato del fichero:
–
–

Formato de los datos de las imágenes:
–
10
Cabecera: 6 enteros (4 bytes cada uno)
Slices: cada una de las imágenes que contiene el
fichero (en tonos de gris)
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-04
Posición y significado de cada byte
11
GVA-ELAI-UPM-PFC083-04
3. Reconstrucción de imágenes 3D
1.
2.
12
Introducción
Fases de la reconstrucción tridimensional
GVA-ELAI-UPM-PFC083-04
3.1 Reconstrucción tridimensional


Visualización de datos basada en el uso de
algoritmos que transformen estos
Clasificación de algoritmos según:


13
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-04
Técnica de contorneado


14
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-04
3.2 Fases de la reconstrucción
tridimensional
a) Marching cubes
b) Reducción puntos de mallado
c) Suavizado del mallado
15
GVA-ELAI-UPM-PFC083-04
a) Marching cubes




16
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-04
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
–
17
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-04
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
–
–
18
Aparecen casos ambiguos en el contorneo
Pueden aparecer “huecos” en la superficie
según el caso elegido
GVA-ELAI-UPM-PFC083-04
4. VTK (Visualization Toolkit)
1.
2.
3.
19
VTK
CMake
Arquitectura de VTK en C++
GVA-ELAI-UPM-PFC083-04
4.1 VTK


Librerías de código libre basadas en la
programación orientada a objetos
Subsistemas componentes:
–
–

20
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-04
4.2 CMake





21
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-04
4.3 Arquitectura de VTK
Modelos de objetos:
a) Graphics model
b) Visualization model
22
GVA-ELAI-UPM-PFC083-04
a) Graphics model


Transformación de datos gráficos en
imágenes
Objetos principales:
–
–
–
–
–
–
–
23
vtkActor
vtkCamera
vtkLight
vtkMapper
vtkRenderer
vtkRenderWindow
vtkRenderWindowInteractor
GVA-ELAI-UPM-PFC083-04
b) Visualization model


Crea datos gráficos a partir de la
información aportada
Objetos principales:
–
–
24
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-04
Tipos de process objects
25
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
posteriormente
Se enlazan formando el pipeline
GVA-ELAI-UPM-PFC083-04
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 por el actor
26
GVA-ELAI-UPM-PFC083-04
5 Reconstrucción de imágenes con VTK



27
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-04
Creación de una aplicación
1. Construir un pipeline de datos para
procesar los datos:
–
28
Conectar:
 Fuentes (crear datos)
 Filtros (procesar datos)
 Mappers (transformar datos en gráficos)
GVA-ELAI-UPM-PFC083-04
Creación de una aplicación
2. Crear los objetos gráficos para
interpretar esos datos:
–
–
–
–
–
29
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-04
Algoritmo visualización 2D y 3D
30
GVA-ELAI-UPM-PFC083-04
Algoritmo visualización 2D y 3D
31
GVA-ELAI-UPM-PFC083-04
6. Aplicación GUI con MFC
1.
2.
3.
32
Introducción
Programación con Visual C++
Librería de clases MFC
GVA-ELAI-UPM-PFC083-04
6.1 GUI



33
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-04
6.2 Programación con Visual C++


34
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
GVA-ELAI-UPM-PFC083-04