Title: Introdu
1Introdução à Visualização Volumétrica
- por
- Roberto de Beauclair Seixas, IMPA
- Anselmo Cardoso de Paiva, UFMA
- Marcelo Gattass, PUC-Rio
2Visualização Volumétrica
- Conjunto de técnicas para visualização de dados
associados a regiões de um volume - Objetivo exibição do interior de objetos
volumétricos, a fim de explorar sua estrutura (ou
falta dela) e facilitar sua compreensão
McCormick, 1987.
3Radiografia Padrão (Raios X)
2K x 2K x 2 Bytes 4 chapas Angiografia 40 chapas
4Tomografia Computadorizada (TC)
Receptores
Raio X
5Exemplos de Imagens de TC
Normalmente 512 x 512 de 1/2 a 2 mm
Exame de 5 a 30 min.
Números em unidades de Hounsfield (HU)
6Problemas da TC
- Pequena resolução temporal para movimento
cardíaco - Presença de artefatos inerentes ao método de
aquisição - Resolução espacial relativamente pequena
- Inabilidade de detecção de doenças em estágios
incipientes que não tenha resultado ainda em
significantes alterações dos coeficientes de
densidade dos tecidos.
7Ressonância Magnética Nuclear (MR)
Grande campomagnético
Mesa comtrilhos
8Principais Vantagens de MR
- Produzem contraste de tecidos moles superior as
outras modalidades, sem a necessidade de agentes
de contraste externo - Permitem a detecção de doenças anteriormente ao
aparecimento de grandes mudanças anatômicas ou
fisiológicas - Fornecem também informação fisiológica e
funcional - As imagens podem ser adquiridas em planos
arbitrários, através de manipulação eletrônica
sem necessidade de mudanças na postura do
paciente - A ausência de radiação ionizante permite a
realização de estudos freqüentes sobre o paciente.
9Desvantagens de MR
- Dificuldades no estudo de calcificações
- Suscetibilidade a movimentos do paciente durante
a aquisição, por ser um processo lento - Impossibilidade de aquisição de dados de
pacientes em sistemas artificiais de suporte a
vida (UTI) - Inexistência de uma escala de valores absolutos
para um determinado conjunto de dados - Alto custo.
10Imagem MR
512 x 512 x 2 Bytes 30 fatias/exame
11Ultra-som
12Imagem de Ultra-som
512 x 512 x 1 Byte
13Medicina Nuclear
Câmera Gama
galium scan
bone scan
SPECT (Single Photon Emission Computed
Tomography) PET (Positron Emission
Tomography) 256 x 256 x 2 Bytes
14Exames Médicos
15Sísmica
16Formação de um traço sísmico
17Seção Sísmica
18Reconstrução das Fatias
volume das fatias (slices)
Ys
Xs
Zs
19Classificação do Voxel
Voxel
Osso
1.0
Músculo
opacidade
Gordura
Branco
Vermelho
Amarelo
Ar
densidade
20Tipos de Dados
- Enumeráveis (material, litologia, ...)
- Escalares (temperatura, pressão, ...)
- Vetoriais (velocidade, aceleração, ...)
- Tensoriais (tensão, deformação, ...)
21Estrutura dos Dados
Grade Retilínea (xi,yj,zk)
Grade Cartesiana (i, j, k)
Grade Regular (idx, jdy,kdz)
Grade Não Estruturada (xi,yi,zi) ,
e(v1, v2 , v3)
Grade Estruturada (xi,j,k,yi,j,k,zi,j,k)
Grade Estruturada por blocos
22Interpolação
- Matriz de células
- interpolação trilinear
- imagens mais suaves
- Matriz de voxels
- análogo 3D do pixel
- (i, j, k)
voxels
pontos da grade
pontos da grade
valor
valor
x
x
23Métodos de Visualização
- Indiretos por extração de superfícies implícitas
- representação por polígonos Zbuffer
- dados menores
- precisa ser refeito quando muda a classificação
- dificuldade de modelar objetos amorfos
- Diretos por modelos de iluminação volumétrica
- geração de imagens diretamente a partir dos dados
volumétricos - visualização de múltiplas características,
inclusive de dados amorfos - grande volume de dados
- não usa (por enquanto) hardware gráfico
24Rendering Direto
- Mapeamento dos elementos de volume direto no
espaço da imagem - Apropriados para a visualização de objetos
amorfos - Mais lentos
25Algoritmo ray-casting
- Ordem da imagem.
- para cada pixel
- lance um raio e encontre os voxels que são
interceptados - fim para
26Lançamento dos Raios
raio
27Partição dos Raios
x
ta
z
tb
voxel
y
amostra
?tmin(?x,?y,?z)
28Interpolação
x,i
(xa, ya, za)
z,k
y,j
29Interpolação no voxel
30Classificação do Voxel
Voxel
tons e opacidade
cor
1.0
velocidade ou densidade
0
255
amplitude
31Diferentes Funções de Transferência
32Sensibilidade à função de transferência
33Iluminação de um voxel
34Estimativa do vetor normal
1a ordem
2a ordem
35Interpolações em Visualização Volumétrica
Phong
Debrin
Gouraud
aC interpolada
normal
aC do voxel
interpolada
cor interpolada
normal
cor do
voxel
do
voxel
36Etapa de Composição
- Para cada raio
- gera amostras de cor Cl (pi) e opacidades a(pi)
- reamostragem dos dados dos voxels, em k amostras
igualmente espaçadas - Processo de acumulação
- I t Ib (1-t)I0
- I0 cor do objeto
- Ib cor do fundo
- I cor resultante
- t coeficiente de transparência
37Influência de um Voxel
r0 g0 b0 a0
r1 g1 b1 a1
r 0 g 0 b 0 a 0
r a0 r0 g a0 g0 b a0 b0 a a0
r a0 r0(1-a0 ) a1 r1 g a0 g0(1-a0 ) a1
g1 b a0 b0(1-a0 ) a1 b1 a a0 (1-a0 ) a1
38Composição no raio
ray
Cin
Cout
39Tripod
exy
exz
ezy
y
?
exy (Dy)x (-Dx)y cxy
ezy (Dy)z (-Dz)y cyz
?
-
-
(x0Dx,y0 Dy,z0 Dz)
x
(x0,y0,z0)
-
?
exz (Dz)x (-Dx)z cxz
z
40Valor inicial e incremento
x
y
z
(1/2,1/2,1/2)
exy (Dy)x (-Dx)y cxy
(Dy-Dx)/2
Dy
-Dx
-Dx
exz (Dz)x (-Dx)z cxz
(Dz-Dx)/2
Dz
Dy
ezy (Dy)z (-Dz)y cyz
(Dy-Dz)/2
-Dz
41Caminhamento discreto
Bresenham
Cohen
42Efeito da amostragem
Bresenham
Tripod
43Partição celular
Volume
de dados
Plano da
uma amostra no meio da partição
imagem
Voxel
Partição
marcador da partição
44Partição na grade
z
(ia ,ja ,0)
tzi ta
tyi
tzf
tyftb
y
(ib ,Ny ,kb)
45Partição celular algoritmo
Dados txi,tyi,tzi, txf,tyf,tzf, nx,ny,nz dtx
txf/nx dty tyf/ny dtz tzf/nz txtxi
tytyi tztzi t1 min(tx,ty,tz) e w é o
eixo do mínimo nnxnynz while ( n gt 0
) tw dtw n-- t2 min(tx,ty,tz) e w
é o eixo do mínimo Sample ((t1t2)/2) t1t2
46Otimizações
- Velocidade
- Refinamento progressivo
- Terminação adaptativa do raio
- Estruturas Hieráquicas
- Qualidade da imagem
- aumento do número de amostra no raio
- lançamento de mais raios
- melhora esquema de interpolação
47Refinamento Progresivo
48Refinamento Progressivo Exemplo
49Algoritmo Ray Casting
- Alto custo computacional
- Apresenta todo o conjunto de dados
- Facilmente paralelizável
- Utilizado quando se deseja imagens de alta
qualidade Elvins,1992
50Raio que calcula a cor de um pixel
(
i,j
)
L
I I(x,y,z,-t,?) radiância ou intensidade
específica num ponto (x,y,z) ou t na direção -t,
na freqüência ?.
ta
Imagem
(x, y, z)
I
t
tb
t
Volume
51Um pouco de física
I(x,n,?) c h ? ? (x,n,?)
c velocidade da luz (2.997925x108 m/s), h
constante de Planck (6.626x10-34 J.s), ?
freqüência da luz (4.3x1014 a 7.5x1014 Hz ou
s-1) ? (x,n,?) densidade de fótons na
freqüência ? no ponto x, na dir n e (m-3 sr
-1). Unidade de I J/s m-2 sr-1 W/m2 sr
52Modelo de absorção
n número de partículas
a área das partículas pR2
r densidade n/vol n/(As Ds)
53Aproximação para cor de um pixel
Um modelo simples para determinação da cor de um
pixel considera todos os fótons emitidos em sua
direção no volume correspondente a seu raio, ou
seja
54Integrando numericamente
Partição t0 ta ? t1 ? t2 ? ? tn-1 ? tn tb
55Estimando a contribuição da partição
Ck intensidade refletida da fonte na partição k
através da área Ap ak t (tk) Dtk opacidade
(núm. de partículas) da partição k
56Shading pelo modelo de Phong
R
V
N
L
tk
t
57Shading por partículas Kajiya
V
L
tk
t
58Aproximando a absorção
59Compondo de trás para a frente
cor cn-1alfan-1 for (in-2 igt0 i--)
cor cialfai(1-alfai)cor
60Operadores do OpenGL
glBlendFunc(GL SRC ALPHA, GL ONE MINUS SRC ALPHA)
cor cn-1alfan-1 for (in-2 igt0 i--)
cor cialfaicor(1-alfai)
61Compondo de frente para atrás
cor c0alfa0 trp 1- alfa0 for (i1
iltn trpgttol i) cor trp(cialfai)
trp (1-alfai)
62Compondo fatias duas a duas
Cfront , afront
Cback , aback
cor c0alfa0 opc alfa0 for (i1 iltn
opclt1-tol i) cor (1-opc)(cialfai
) opc (1-opc)alfai
Cnew , anew
63Problemas de re-amostragem
C
C1
0
0
1
1
0
0
1
1
a
a1
C
C0.75
0
0
1
1
0.5
0
0
1.0
?
0
0.5
0
1.0
0
0
1
1
a
a1
64Re-amostragem da cor ponderada
a C
C1
0
0
1
1
0
0
1
1
a
a1
a C
C1
0
0
1
1
0.5
0
0
1.0
?
0
0.5
0
1.0
0
0
1
1
a
a1
65Splatting (Westover,1990)
- projeção de voxel equivale a atirar uma bola de
neve num prato de vidro - contribuição da neve decresce com distância ao
centro - região de influência de voxel no espaço da imagem
é constante, a menos de uma translação
66Splatting
- Algoritmo
- transformação ordem para percorrer o volume
- iluminação modelo local
- reconstrução determina a porção da imagem
influenciada por cada voxel - determinação da visibilidade compõe as
contribuições acumuladas em um buffer
67Reconstrução do volume
t
(x,y,z)
x
(i,j,k)
z
y
68Footprint
centro da projeção
footprint
69Grade de espaçamentos diferentes
T-1
x
z
T-1(x)x
y
70 Shear-Warp (Lacroute, 1995)
intermediate image scanline
1. shear resample
3. warp resample
2. project composite
voxel scanline
intermediate image
final image
71Esquema
shear
viewing rays
warp
image plane
Mview Mwarp2D Mshear3D
72Otimização
voxel scanline
Resampling and Composition
intermediate image scanline
skip
work
skip
work
skip
Voxel with a 0
Opaque pixel
Voxel with a gt 0
Non opaque pixel
73Volume rendering with textures
743D texture volume rendering
- Load the volume data into a 3D texture. This
processing is done once for a particular data
volume. - Choose the number of slices. Usually this matches
the texel dimensions of the volume data cube. - Find the desired viewpoint and view direction
- Compute a series of polygons that cut through the
data perpendicular to the direction of view. Use
texture coordinate generation to texture the
slice properly with respect to the 3D texture
data. - Use the texture transform matrix to set the
desired orientation the textured images on the
slices. - Render each slice as a textured polygon, from
back to front. - As the viewpoint and direction of view changes,
recompute the data slice positions and update the
texture transformation matrix as necessary.
752D texture volume rendering
- Generate the three sets of 2D textures from the
volume data. Each set of 2D textures is oriented
perpendicular to one of volumes major axes. This
processing is done once for a particular data
volume. - Choose the number of slices. Usually this matches
the texel dimensions of the volume data cube. - Find the desired viewpoint and view direction.
- Find the set of 2D textures most perpendicular to
the direction of view. Generate data slice
polygons parallel to the 2D texture set chosen.
Use texture coordinate generation to texture each
slice properly with respect to its corre-sponding
2D texture in the texture set. - Use the texture transform matrix to set the
desired orientation the textured images on the
slices. - Render each slice as a textured polygon, from
back to front. A blend operation is performed at
each slice the type of blend depends on the
desired effect. - As the viewpoint and direction of view changes,
recompute the data slice positions and update the
texture transformation matrix as necessary.
Always orient the data slices to the 2D texture
set that is most closely aligned with it.