Title: Aplicaci
1Aplicación para la visualización de imágenes 2D y
3D empleando VTK
2Sumario 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
- Aplicación GUI con MFC
- Ventana de visualización de imágenes 2D y 3D
31. 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
42. Imágenes .pic obtenidas del confocal
- Microscopia confocal
- Obtención de imágenes 3D
52.1 Microscopia confocal
- Microscopio óptico
- Microscopio confocal
6Microscopio confocal
- Diafragma de detección (elimina luz del plano
focal) - Diafragma de iluminación
72.2 Obtención de imágenes 3D
- Adquisición de imágenes 3D con el microscopio
confocal - Archivos .pic
8Obtenció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
9Archivos .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
10Secuencia 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
11Posición y significado de cada byte
123. Reconstrucción de imágenes 3D
- Introducción
- Fases de la reconstrucción tridimensional
133.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
14Té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)
153.2 Fases de la reconstrucción tridimensional
- a) Marching cubes
- b) Reducción puntos de mallado
- c) Suavizado del mallado
16a) 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
17b) 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
18c) 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
194. VTK (Visualization Toolkit)
- VTK
- CMake
- Arquitectura de VTK en C
204.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
214.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
224.3 Arquitectura de VTK
- Modelos de objetos
- a) Graphics model
- b) Visualization model
23a) Graphics model
- Transformación de datos gráficos en imágenes
- Objetos principales
- vtkActor
- vtkCamera
- vtkLight
- vtkMapper
- vtkRenderer
- vtkRenderWindow
- vtkRenderWindowInteractor
24b) 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
25Tipos de process objects
- a) Fuentes Generan datos leyendo o construyendo
uno o más data objects - b) FiltrosTransforman 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
26Pipeline
-
render - fuente gt filtro gt mapper gt 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
275 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
28Creació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)
29Creació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
30Algoritmo visualización 2D y 3D
31Algoritmo visualización 2D y 3D
326. Aplicación GUI con MFC
- Introducción
- Programación con Visual C
- Librería de clases MFC
336.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.
346.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