Aplicación para la visualización de imágenes 2D y 3D empleando VTK

34
GVA-ELAI-UPM-PFC083-04 1 Aplicación para la visualización de imágenes 2D y 3D empleando VTK Nuria Paniagua

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 Presentation

Transcript of Aplicación para la visualización de imágenes 2D y 3D empleando VTK

Page 1: Aplicación para la visualización de imágenes 2D y 3D empleando VTK

GVA-ELAI-UPM-PFC083-041

Aplicación para la visualización de imágenes 2D y 3D empleando VTK

Nuria Paniagua

Page 2: Aplicación para la visualización de imágenes 2D y 3D empleando VTK

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

Page 3: Aplicación para la visualización de imágenes 2D y 3D empleando VTK

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

Page 4: Aplicación para la visualización de imágenes 2D y 3D empleando VTK

GVA-ELAI-UPM-PFC083-044

2. Imágenes *.pic obtenidas del confocal

1. Microscopia confocal2. Obtención de imágenes 3D

Page 5: Aplicación para la visualización de imágenes 2D y 3D empleando VTK

GVA-ELAI-UPM-PFC083-045

2.1 Microscopia confocal

Microscopio óptico

Microscopio confocal

Page 6: Aplicación para la visualización de imágenes 2D y 3D empleando VTK

GVA-ELAI-UPM-PFC083-046

Microscopio confocal

– Diafragma de detección (elimina luz del plano focal)

– Diafragma de iluminación

Page 7: Aplicación para la visualización de imágenes 2D y 3D empleando VTK

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

Page 8: Aplicación para la visualización de imágenes 2D y 3D empleando VTK

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

Page 9: Aplicación para la visualización de imágenes 2D y 3D empleando VTK

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

Page 10: Aplicación para la visualización de imágenes 2D y 3D empleando VTK

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

Page 11: Aplicación para la visualización de imágenes 2D y 3D empleando VTK

GVA-ELAI-UPM-PFC083-0411

Posición y significado de cada byte

Page 12: Aplicación para la visualización de imágenes 2D y 3D empleando VTK

GVA-ELAI-UPM-PFC083-0412

3. Reconstrucción de imágenes 3D

1. Introducción2. Fases de la reconstrucción tridimensional

Page 13: Aplicación para la visualización de imágenes 2D y 3D empleando VTK

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

Page 14: Aplicación para la visualización de imágenes 2D y 3D empleando VTK

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)

Page 15: Aplicación para la visualización de imágenes 2D y 3D empleando VTK

GVA-ELAI-UPM-PFC083-0415

3.2 Fases de la reconstrucción tridimensional

a) Marching cubesb) Reducción puntos de malladoc) Suavizado del mallado

Page 16: Aplicación para la visualización de imágenes 2D y 3D empleando VTK

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

Page 17: Aplicación para la visualización de imágenes 2D y 3D empleando VTK

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

Page 18: Aplicación para la visualización de imágenes 2D y 3D empleando VTK

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

Page 19: Aplicación para la visualización de imágenes 2D y 3D empleando VTK

GVA-ELAI-UPM-PFC083-0419

4. VTK (Visualization Toolkit)

1. VTK2. CMake3. Arquitectura de VTK en C++

Page 20: Aplicación para la visualización de imágenes 2D y 3D empleando VTK

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

Page 21: Aplicación para la visualización de imágenes 2D y 3D empleando VTK

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

Page 22: Aplicación para la visualización de imágenes 2D y 3D empleando VTK

GVA-ELAI-UPM-PFC083-0422

4.3 Arquitectura de VTK

Modelos de objetos:

a) Graphics model

b) Visualization model

Page 23: Aplicación para la visualización de imágenes 2D y 3D empleando VTK

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

Page 24: Aplicación para la visualización de imágenes 2D y 3D empleando VTK

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

Page 25: Aplicación para la visualización de imágenes 2D y 3D empleando VTK

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

Page 26: Aplicación para la visualización de imágenes 2D y 3D empleando VTK

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

Page 27: Aplicación para la visualización de imágenes 2D y 3D empleando VTK

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

Page 28: Aplicación para la visualización de imágenes 2D y 3D empleando VTK

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)

Page 29: Aplicación para la visualización de imágenes 2D y 3D empleando VTK

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

Page 30: Aplicación para la visualización de imágenes 2D y 3D empleando VTK

GVA-ELAI-UPM-PFC083-0430

Algoritmo visualización 2D y 3D

Page 31: Aplicación para la visualización de imágenes 2D y 3D empleando VTK

GVA-ELAI-UPM-PFC083-0431

Algoritmo visualización 2D y 3D

Page 32: Aplicación para la visualización de imágenes 2D y 3D empleando VTK

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

Page 33: Aplicación para la visualización de imágenes 2D y 3D empleando VTK

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.

Page 34: Aplicación para la visualización de imágenes 2D y 3D empleando VTK

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