Você está na página 1de 138

Universidade Federal de So Carlos

Centro de Cincias Exatas e de Tecnologia


Programa de Ps-Graduao em Cincia da Computao













Reconstruo 3D de Imagens
Tomogrficas de Raios-X de Arcos
Coronais em Ambiente Paralelo


Li l i an Noguei ra de Fari a




















So Carlos - SP
2003


































Ficha catalogrfica elaborada pelo DePT da
Biblioteca Comunitria da UFSCar



F224rt

Faria, Lilian Nogueira de.
Reconstruo 3D de imagens tomogrficas de raios-x de
arcos coronais em ambiente paralelo / Lilian Nogueira de
Faria. -- So Carlos : UFSCar, 2005.
114 p.


Dissertao (Mestrado) -- Universidade Federal de So
Carlos, 2003.

1. Reconstruo de imagens tomogrficas. 2.
Processamento paralelo (computadores). 3. Teoria
bayesiana da estimao. 4. Processamento de imagens. 5.
Computao grfica. I. Ttulo.


CDD: 006.693 (20
a
)





Universidade Federal de So Carlos
Centro de Cincias Exatas e de Tecnologia
Programa de Ps-Graduao em Cincia da Computao



Reconstruo 3D de Imagens
Tomogrficas de Raios-X de Arcos
Coronais em Ambiente Paralelo


Lilian Nogueira de Faria

Dissertao de Mestrado apresentada ao
Programa de Ps-Graduao em Cincia da
Computao da Universidade Federal de So
Carlos, como parte dos requisitos para a
obteno do ttulo de Mestre em Cincia da
Computao.

Membros da Banca:




















So Carlos - SP
2003


______________________________________________
Prof. Dr. Nelson Delfino dvila Mascarenhas
(Orientador DC/UFSCar)


______________________________________________
Prof. Dr. Clio Estevan Moron
(Co-orientador DC/UFSCar)


______________________________________________
Prof. Dr. Reinaldo Roberto Rosa
(INPE/SJC)


______________________________________________
Prof. Dr. Junior Barrera
(IME/USP)












































Aos meus pais que me deram total apoio para
que eu pudesse vencer mais esta etapa.



Agradecimentos

Ao Prof. Dr. Nelson Delfino dvila Mascarenhas, pela orientao e oportunidade de
desenvolver este trabalho de pesquisa na rea de Processamento de Imagens e Sinais, e pelas
explicaes sobre o mtodo de Interpolao 3D de Imagens usando Teoria de Estimao.

Ao Prof. Dr. Clio Estevan Moron, pesquisador na rea de Sistemas Distribudos e
Redes, pela minha iniciao na pesquisa cientfica e co-orientao no desenvolvimento deste
trabalho, contribuindo significativamente para minha formao acadmica, da Iniciao
Cientfica ao Mestrado. Em especial, pela proposta do projeto de Mestrado em conjunto com
o Prof. Nelson Mascarenhas, agregando ao meu aprendizado na rea de Processamento de
Imagens, o conhecimento e experincia adquiridos no desenvolvimento de programas
paralelos em Sistemas de Tempo Real. Agradeo aos orientadores por disponibilizarem os
recursos computacionais para o desenvolvimento do projeto e pelo suporte em todas as fases
de desenvolvimento do Mestrado.

Ao Prof. Dr. Reinaldo Roberto Rosa, do Instituto Nacional de Pesquisas Espaciais
(INPE/SJC), por compartilhar um pouco do seu conhecimento e entusiasmo pela rea de
Cincia Espacial, fornecendo informaes sobre a dinmica do arco coronal, sem as quais
este trabalho no poderia ser realizado.

Ao Prof. Dr. Andr Luiz Battaiola, pela participao no Exame de Qualificao e,
principalmente, pelo estmulo na disciplina de Computao Grfica, onde pude aprender e
praticar os conhecimentos especficos, incluindo o conceito de Visualizao Volumtrica,
muito til neste trabalho de Mestrado.

Ao Prof. Dr. Jos Hiroki Saito, pela participao e sugestes no Exame de Qualificao.

Ao Prof. Dr. Junior Barrera, do Departamento de Cincia da Computao do Instituto de
Matemtica e Estatstica (IME/USP), pela participao e sugestes na Defesa da Dissertao.

A todos os Professores do Departamento de Computao da UFSCar, pela qualidade do
ensino oferecido na Graduao e na Ps-Graduao em Cincia da Computao.

equipe de suporte da Eonic Solutions GmbH (Blgica), pelo eficiente atendimento
de suporte e, principalmente, ao Richard Middendorf, por me salvar num momento decisivo
para o desenvolvimento do projeto de Mestrado, me proporcionando auxlio tcnico para
identificar e corrigir o problema na instalao do Virtuoso no sistema Atlas, me permitindo
implementar com sucesso o programa paralelo, j quase no final do Mestrado.

Aos colegas de Ps-Graduao, administradores do Laboratrio de Processamento de
Imagens, que dedicaram parte de seu tempo para dar assistncia tcnica aos usurios.

CAPES, pela bolsa de estudo concedida nestes dois anos de Mestrado, para que eu
pudesse me dedicar em tempo integral s atividades da Ps-Graduao.

Aos meus pais, pelo apoio fundamental na conquista das melhores oportunidades de
estudo para realizar minha formao profissional, pelas palavras certas nos momentos
difceis, e por estarem sempre presentes em minha vida.

Vencer esta etapa foi, sem dvida alguma, um grande desafio... Sem a contribuio de todos,
seria impossvel realizar este trabalho.


Sumrio



Resumo III
Abstract IV
1


Introduo

01

1.1 Motivao e Objetivos 05
1.2 Viso Geral do Projeto 07
08
2
Interpolao 3D de Imagens usando a Teoria de
Estimao Bayesiana 09

2.1 Teoria de Estimao Bayesiana 10
2.1.1 Estimao de parmetros 10
2.1.1.1 Estimao de mdia 11
2.1.1.2 Estimao de varincia 11
2.1.1.3 Estimao de vetor mdia 12
2.1.1.4 Estimao de matriz de covarincia 12
2.1.2 Estimao de Bayes 13
2.1.3 Filtro de Wiener 18
2.2 Interpolao 3D de Imagens usando a Teoria de Estimao Bayesiana 19
2.2.1 Estimao de parmetros estatsticos 20
2.2.1.1 Mdia amostral e varincia amostral das imagens observadas e
da imagem a priori
21
2.2.1.2 Matriz de covarincia amostral entre imagens observadas 22
2.2.1.3 Vetor de covarincias entre pixels estimados e pixels observados 24
2.2.2 Interpolador linear mdio-quadrtico 25
2.3 Aplicaes de Interpolao 3D de Imagens 27
2.3.1 Imagens de raios-X de um arco coronal 27
2.3.2 Imagens de ressonncia magntica de um tomate 28


3

Metamorfose de Imagens

30

3.1 Interpolao de Imagens 31
3.2 Deformao de Imagens 33
3.3 Metamorfose de Imagens 34
3.3.1 Metamorfose de imagens baseada em pontos 36
3.3.2 Deformao com interpolao ponderada pela distncia inversa 37
3.3.3 Metamorfose com interpolao ponderada pela distncia inversa 38
4

Reconstruo de Volume

40

4.1 Reconstruo 3D de Imagens Tomogrficas de Ressonncia Magntica 41
4.2 Reconstruo 3D de Imagens Tomogrficas de Raios-X do Arco Coronal 44
5

Visualizao de Volume

48

5.1 Renderizao de Superfcie 49
5.2 Renderizao de Volume 50
5.2.1 Classificao dos dados 50
5.2.1.1 Funo de transferncia 51
5.2.1.2 Histograma do volume 52
5.2.2 Projeo do volume 53
5.2.2.1 Algoritmo Maximum Intensity Projection 53
5.2.2.2 Algoritmo Ray Casting 54
6

Sistemas Paralelos

56

6.1 Arquitetura de Computadores Paralelos 56
6.2 Conceitos de Processamento Paralelo 57
6.3 Metodologia de Desenvolvimento de Programas Paralelos 60
6.3.1 Modelo de programao paralela 61
6.3.2 Projeto de algoritmos paralelos 63


6.4 Anlise de Programas Paralelos 65
6.4.1 Anlise de rendimento 65
6.4.1.1 Tempo de execuo 65
6.4.1.2 Eficincia e ganho 67
6.4.2 Anlise de escalabilidade 68
7

Reconstruo 3D de Arcos Coronais

69

7.1 Definio da Estrutura 3D do Loop com Curva Bezier
70
7.2 Deformao de Imagens controlada pela Curva Bezier 71
7.3 Reconstruo 3D de Loops usando Metamorfose de Imagens 75
8

Programa de Reconstruo 3D de Arcos Coronais

76

8.1 Programa Paralelo de Reconstruo 3D
78
8.1.1 Implementao do programa paralelo 81
8.2 Programa Principal 85
8.2.1 Especificao e visualizao da curva Bezier 3D 85
8.2.2 Interface de execuo do programa paralelo 86
8.2.3 Interface de visualizao 3D de loops 86
8.2.4 Integrao de programas entre IDL&Virtuoso 87
9

Resultados

88

9.1 Anlise do Programa Paralelo 88
9.2 Anlise da Reconstruo 3D do Loop 90
10



Concluses

92

Referncias Bibliogrficas 94





Apndices

Parte I
97
Apndice A. Ambiente de Desenvolvimento 98
A.1 Sistema paralelo Atlas 98
A.2 Virtuoso Sistema operacional de tempo real 99
A.3 Ambiente visual de desenvolvimento de programa paralelos 101
A.4 Ambiente de desenvolvimento de programas de visualizao - IDL 102

Parte II
103
Apndice B. Vetores Aleatrios 104
B.1 Vetor esperado 104
B.2 Matriz de covarincia 105
B.3 Matriz de correlao 105
B.4 Classificao de vetores aleatrios 106
Apndice C. Curva Bezier 107
C.1 Representao de curvas 107
C.1.1 Curvas no-paramtricas 107
C.1.2 Curvas paramtricas 107
C.2 Curva Bezier 108
C.2.1 Curva Bezier cbica 109
Apndice D. Cdigo Fonte IDL 112
D.1 Interpolao 3D de Imagens usando a Teoria de Estimao Bayesiana 112

Parte III
115
Apndice E. Imagens de Reconstruo e Visualizao 3D 116
Apndice F. Ambientes de Desenvolvimento do Programa 122



I

Lista de Figuras

FIGURA 1.1 Imagens da coroa solar ........................................................................................................... 02
FIGURA 1.2 Imagem de raios-X moles da coroa solar observada pelo satlite Yohkoh....................... 03
FIGURA 1.3 Arco coronal observado no limbo solar pelo satlite TRACE ........................................... 04
FIGURA 1.4 Imagens tomogrficas de raios-X obtidas pelos telescpios do satlite Yohkoh ............ 05
FIGURA 2.1 Modelo de Estimao............................................................................................................... 13
FIGURA 2.2 Tipos de funes de custo. ...................................................................................................... 14
FIGURA 2.3 Densidade a posteriori ............................................................................................................. 16
FIGURA 2.4 Interpolao local com janelas deslizantes............................................................................ 20
FIGURA 2.5 Janelas de observao 3x3 ....................................................................................................... 22
FIGURA 2.6 Imagens originais e interpoladas com janela de observao 3x3....................................... 27
FIGURA 2.7 Imagens originais de ressonncia magntica de tomate e imagens interpoladas ........... 28
FIGURA 3.1 Processo de metamorfose de imagens ................................................................................... 30
FIGURA 3.2 Combinao de cor das imagens. ........................................................................................... 31
FIGURA 3.3 Funes de cross-dissolve linear. ........................................................................................... 31
FIGURA 3.4 Seqncia de imagens geradas com cross-dissolve linear .................................................. 32
FIGURA 3.5 Mtodos de deformao de imagem baseados em malha ou pontos................................ 33
FIGURA 3.6 Deformao de imagens e interpolao de cor das imagens deformadas. ....................... 34
FIGURA 3.7 Seqncia de imagens geradas com morphing .................................................................... 34
FIGURA 3.8 Mtodos de morphing de imagens baseados em malha ou caractertica ......................... 35
FIGURA 3.9 Deslocamento de um pixel com interpolao ponderada pela distncia inversa............ 38
FIGURA 3.10 Interpolao linear para deformao progressiva das imagens....................................... 39
FIGURA 4.1 Etapas de reconstruo e visualizao volumtrica............................................................. 41
FIGURA 4.2 Cross-dissolve para reconstruo de volume....................................................................... 42
FIGURA 4.3 Imagens originais de ressonncia magntica de um tomate. ............................................. 42
FIGURA 4.4 Visualizao 3D do tomate aps reconstruo de volume. ................................................ 42
FIGURA 4.5 Algumas imagens originais de ressonncia magntica da manga .................................... 43
FIGURA 4.6 Visualizao aps reconstruo volumtrica de imagens tomogrficas da manga. ....... 43
FIGURA 4.7 Reconstruo 3D do arco coronal usando cross-dissolve ................................................... 44
FIGURA 4.8 Especificao de pontos de controle nas imagens tomogrficas do arco coronal para
deformao das imagens da base e topo.. ........................................................................... 44
FIGURA 4.9 Metamorfose com deformao linear. ................................................................................... 45
FIGURA 4.10 Reconstruo 3D do arco coronal usando metamorfose linear. ....................................... 45
FIGURA 4.11 Metamorfose com deformao quadrtica.......................................................................... 46
FIGURA 4.12 Reconstruo 3D do arco coronal usando metamorfose quadrtica ............................... 46
FIGURA 4.13 Metamorfose com curva polinomial .................................................................................... 46
FIGURA 5.1 Representao do volume ....................................................................................................... 48
FIGURA 5.2 Visualizao do mesmo volume de dados com diferentes isosuperfcies ........................ 49
FIGURA 5.3 Projeo do volume no plano de visualizao...................................................................... 50
FIGURA 5.4 Funes de transferncia e tabelas de opacidade e cor (R, G, B)........................................ 51
FIGURA 5.5 Visualizao de volume com diferentes funes de transferncia de opacidade. ........... 52
FIGURA 5.6 Histograma do volume e funo de transferncia de opacidade....................................... 52
FIGURA 5.7 Projeo do volume no plano de visualizao...................................................................... 53
FIGURA 5.8 Renderizao de volume usando MIP................................................................................... 53
FIGURA 5.9 Cor e opacidade aps atravessar um voxel........................................................................... 54
FIGURA 5.10 Renderizao de volume usando ray-casting. .................................................................... 54
FIGURA 6.1 Modelos de mquina MIMD de memria compartilhada e memria distribuda. ......... 57

II

FIGURA 6.2 Arquitetura de um sistema operacional de tempo real....................................................... 58
FIGURA 6.3 Grafos de transies entre estados de tarefas ....................................................................... 60
FIGURA 6.4 Modelo de programao paralela task/channel .................................................................. 61
FIGURA 6.5 Comunicao e sincronizao de tarefas usando canal ...................................................... 62
FIGURA 6.6 Metodologia de projeto de programas paralelos PCAM ................................................... 64
FIGURA 6.7 Representao de execuo de um programa paralelo em oito processadores .............. 66
FIGURA 6.8 Grficos de eficincia x nmero de processadores e ganho (speedup) x nmero de
processadores ......................................................................................................................... 68
FIGURA 7.1 Imagens de raios-X do loop..................................................................................................... 69
FIGURA 7.2 Curva Bezier 3D para aproximao da estrutura tridimensional do loop........................ 70
FIGURA 7.3 Parmetros para deformao com curva Bezier................................................................... 71
FIGURA 7.4 Mapeamento de pixels no processo de deformao com curva Bezier............................. 74
FIGURA 7.5 Processo de mestamorfose de imagens: deformao + interpolao de imagens ........... 75
FIGURA 7.6 Resultado da reconstruo 3D de loops usando morphing de imagens........................... 75
FIGURA 8.1 Estrutura do programa de reconstruo 3D de loops ......................................................... 77
FIGURA 8.2 Particionamento para deformao das imagens .................................................................. 78
FIGURA 8.3 Balanceamento de carga para deformao das imagens da base e topo........................... 78
FIGURA 8.4 Estrutura de comunicao do programa de reconstruo 3D de loops ............................ 80
FIGURA 8.5 Representao grfica do programa paralelo no Ambiente Visual ................................... 82
FIGURA 8.6 Links de comunicao interprocessadores............................................................................ 84
FIGURA 8.7 Interface grfica principal........................................................................................................ 85
FIGURA 8.8 Interface de especificao e visualizao da curva Bezier 3D. ........................................... 85
FIGURA 8.9 Interface de execuo do programa paralelo de reconstruo 3D..................................... 86
FIGURA 8.10 Interface de visualizao 3D de loops.................................................................................. 87
FIGURA 9.1 Grafcos de tempo, speedup e eficincia x nmero de processadores .............................. 89
FIGURA 9.2 Estrutura do loop...................................................................................................................... 90
FIGURA 9.3 Loop 3D reconstrudo com 103 imagens intermedirias de 128x 128 pixels.................... 90
FIGURA 9.4 Um loop sigmoidal capturado pelo Yohkoh......................................................................... 91
FIGURA 9.5 Curva Bezier com forma sigmoidal ....................................................................................... 91
FIGURA 9.6 Loop reconstrudo com forma sigmoidal.............................................................................. 91
FIGURA A.1 Sistema paralelo Atlas............................................................................................................. 98
FIGURA A.2 Gerador de Programas do Ambiente Visual de Desenvolvimento de Programas
Paralelos de Tempo Real ..................................................................................................... 101
FIGURA C.1 Curvas Bezier cbicas e seus respectivos pontos de controle. ........................................ 109
FIGURA C.2 Polgono de definio da curva Bezier ............................................................................... 109
FIGURA C.3 Funes blending para curvas Bezier cbicas ................................................................... 110
FIGURA E.1 Conjunto de 12 imagens reconstrudas a partir de 3 imagens tomogrficas de
ressonncia magntica de tomate.................................................................................... 117
FIGURA E.2 Visualizao 3D do tomate aps a reconstruo do volume usando cross-dissolve .... 117
FIGURA E.3 Conjunto de 22 imagens originais de tomografia de ressonncia magntica da manga 118
FIGURA E.4 Visualizao 3D da manga aps a reconstruo de volume usando cross-dissolve..... 118
FIGURA E.5 Algumas imagens intermedirias do loop geradas cross-dissolve e metamorfose ...... 119
FIGURA E.6 Loop 3D recontrudo com cross-dissolve e metamorfose................................................. 119
FIGURA E.7 Imagens geradas com o mtodo de reconstruo 3D controlado por curva Bezier...... 120
FIGURA E.8 Contorno das imagens geradas com o mtodo de reconstruo 3D controlado por curva
Bezier................................................................................................................................... 121
FIGURA F.1 Interface grfica do ambiente IDL para desenvolvimento do programa de visualizao 122
FIGURA F.2 Representao grfica do programa paralelo de reconstruo 3D no Ambiente Visual
de Desenvolvimento ......................................................................................................... 123

III








RESUMO


Pesquisas espaciais esto sendo realizadas com o objetivo de prever as exploses
solares, atravs de imagens capturadas por satlites equipados com telescpios de
raios-X. As imagens solares de alta resoluo possibilitam o estudo da dinmica
espao-temporal de estruturas plasma-magnticas em forma de arco, denominadas
arcos coronais. Os arcos coronais podem fornecer informaes importantes sobre a
dinmica das exploses solares, que podem causar srias perturbaes nos sistemas
de comunicao terrestre. No entanto, estas informaes esto sujeitas a erros devido
limitao espacial imposta pelas imagens bidimensionais. Motivado pela
necessidade de extrair informaes da estrutura tridimensional dos arcos coronais,
um mtodo para reconstruo 3D de arcos coronais a partir de duas imagens
tomogrficas de raios-X observadas pelo satlite japons Yohkoh foi desenvolvido.
Este mtodo de reconstruo 3D baseado em metamorfose de imagens gera as
imagens intermedirias de sees transversais do arco coronal usando um mtodo de
deformao de imagens controlado por uma curva Bezier e um mtodo de
Interpolao 3D de Imagens usando a Teoria de Estimao Bayesiana. Devido
necessidade de reconstruo 3D de arcos coronais em um tempo razovel para
estudo da dinmica espao-temporal, um programa paralelo de reconstruo 3D foi
implementado para executar em uma mquina paralela de alto desempenho.








IV








ABSTRACT


Space researches have been carried with the objective to forecast solar explosions,
through images obtained by satellites equipped with X-ray telescopes. The high-
resolution solar images allow the study of the spatio-temporal dynamics of plasma-
magnetic structures in arc shape, denominated coronal loops. The coronal loops can
provide important information about the solar explosions dynamics that may cause
serious perturbations in terrestrial communication systems. However, this
information is subject to errors due to the spatial limitation imposed by
bidimensional images. Motivated by the need to extract information of the
tridimensional structure of the coronal loops, a method for 3D reconstruction of
coronal loops from two X-ray tomographic images captured by the Japanese satellite
Yohkoh was developed. This method of 3D reconstruction based on image morphing
generates the intermediate images of the transversal sections of the loop using a
image warping method controlled by a Bezier curve and an approach to Image 3D
Interpolation using Bayesian Estimation Theory. Due to the need for the 3D
reconstruction of the coronal loops in a reasonable time for study of the spatio-
temporal dynamics, a parallel program was implemented to execute in a high
performance parallel machine.












1
Introduo


Cientistas espaciais esto realizando pesquisas com o objetivo de detectar e prever as
exploses solares, que podem causar srias perturbaes nos sistemas de
comunicao terrestre, alm de danificar satlites e sistemas de fornecimento de
energia. As exploses ocorrem na coroa solar, devido liberao repentina de grande
quantidade de energia magntica, lanando partculas energticas que podem afetar
a magnetosfera terrestre.
A coroa solar a camada mais externa da atmosfera solar,
extremamente rarefeita e constituda de plasma (gs ionizado) a altas temperaturas.
As emisses de alta energia da coroa podem ser detectadas em diferentes faixas do
espectro eletromagntico, desde ondas de rdio, at raios-X e raios gama. As
emisses de raios-X, medidos em unidades de milhares de eltron-volts (keV),
variam na faixa de 1 keV a 100 keV. Os raios gama possuem a mais alta energia entre
todas as formas de radiao eletromagntica, apresentando energia acima de
100 keV.
As emisses de ondas de rdio das exploses solares podem ser
observadas com radiotelescpios na Terra. A radiao ptica da coroa
extremamente fraca e, por isso, s pode ser observada da Terra durante um eclipse
solar total ou utilizando telescpios especiais, chamados corongrafos, que simulam
CAPTULO 1 I NTRODUO

2

um eclipse bloqueando a luz proveniente do disco solar. A Figura 1.1(a) mostra a
coroa solar, no eclipse total de 26 de fevereiro de 1998, observada com a cmara de
luz branca do observatrio High Altitude Observatory (HAO) do National Center for
Atmospheric Research (NCAR). A Figura 1.1(b) mostra a coroa solar observada pelo
corongrafo do satlite SOHO (Solar and Heliospheric Observatory), em 18 de maro de
2003. As radiaes de raios-X e raios gama no penetram na atmosfera terrestre e,
portanto, s podem ser detectadas por satlites lanados no espao.



(a) Coroa solar no eclipse total. (b) Imagem de um corongrafo.

FIGURA 1.1 Imagens da coroa solar.

O avano tecnolgico na rea espacial possibilitou a aquisio de
imagens solares atravs de satlites equipados com sistemas de imageamento. Vrios
satlites j foram lanados com o objetivo de estudar as emisses de alta energia das
exploses solares. O satlite japons Yohkoh esteve em operao durante dez anos,
desde que foi lanado em 31 de agosto de 1991, no Japo.

Outros satlites, como o


RHESSI (Ramaty High Energy Solar Spectroscopic Imager), TRACE (Transition Region and
Coronal Explorer) e SOHO, permitem estudar as radiaes de raios ultravioleta,
raios-X e raios gama das exploses solares.

Em dezembro de 2001, durante um eclipse anular, o satlite Yohkoh perdeu contato com o Sol e comeou a girar
fora de controle. Enquanto isso, as baterias se descarregaram. Este evento ocorreu durante um perodo raro da rbita
do satlite (conhecida como rbita invisvel), quando o satlite estava fora de comunicao com os controladores na
Terra, que no puderam detectar e corrigir o posicionamento do satlite. Os controladores restabeleceram o contato
com o satlite e desligaram todos os instrumentos para economizar energia. Como o satlite continua girando e recebe
periodicamente a iluminao do Sol, os controladores esperam que as baterias sejam recarregadas, para que possam
readquirir o controle do satlite e o contato com o Sol.
CAPTULO 1 I NTRODUO

3

O satlite japons Yohkoh
*
equipado com dois telescpios: Hard X-Ray
Telescope e Soft X-Ray Telescope, que detectam raios-X duros (HXR) e raios-X moles
(SXR), respectivamente. Os raios-X duros so os raios-X de mais alta energia do
espectro eletromagntico, enquanto os raios-X de mais baixa energia so
denominados raios-X moles. A distino entre raios-X duros e moles no bem
definida, mas, tipicamente, raios-X duros so aqueles com energia maior que 10 keV.
A Figura 1.2 mostra uma das ltimas imagens da coroa solar observada pelo
telescpio de raios-X moles do satlite Yohkoh em 14 de dezembro de 2001.



FIGURA 1.2 Imagem de raios-X moles da
coroa solar observada pelo satlite Yohkoh.
A superfcie solar, denominada fotosfera, apresenta uma temperatura
muito baixa, em torno de 6000 C, quando comparada com a temperatura do ncleo
solar, de aproximadamente 15 milhes de graus Celsius, e da coroa solar, que pode
atingir dois milhes de graus Celsius. Devido baixa temperatura, a fotosfera no
emite quantidade suficiente de raios-X e, por isso, aparece escura nas imagens, em
contraste com a coroa solar.
As imagens solares de alta resoluo espacial e temporal mostram que a
coroa solar altamente heterognea e dinmica [29, 30]. As estruturas plasma-
magnticas observadas na coroa solar emitem diferentes quantidades de energia,
sendo que estruturas prximas das regies ativas so fontes de emisses mais

*
Termo japons que significa Raios de Sol.

Outras informaes, imagens e filmes solares podem ser encontrados nos sites dos satlites Yohkoh, RHESSI, TRACE e
SOHO.
CAPTULO 1 I NTRODUO

4

potentes de raios-X. Dentre as estruturas observadas nas regies ativas, os arcos
coronais ou loops surgem a partir de linhas de campo magntico entre regies
positivas e negativas da superfcie solar, gerando um fluxo de plasma magntico em
forma de arco. A Figura 1.3 mostra um arco coronal observado pelo TRACE, em
maro de 1999.


FIGURA 1.3 Arco coronal observado
no limbo solar pelo satlite TRACE.

As imagens de raios-X dos arcos coronais mostram freqentemente
estruturas torcidas. Um movimento contnuo de rotao fluida em ambas as
extremidades do arco gera ondas de toro que se propagam ao longo do arco. s
vezes, os arcos magnticos distorcem aps uma mudana topolgica das linhas do
campo magntico. Caso contrrio, aps diversas rotaes, o arco magntico torna-se
instvel e ocorre uma liberao explosiva de energia com ejeo de massa na
atmosfera solar.
Sendo assim, entender a estrutura tridimensional e a dinmica dos
arcos coronais fundamental para a previso de exploses solares. Esta uma rea
de pesquisa em desenvolvimento que vem estudando a atividade solar, para
desvendar a dinmica das exploses solares.



CAPTULO 1 I NTRODUO

5

1.1 Motivao e Objetivos
Os cientistas da Diviso de Astrofsica do Instituto Nacional de Pesquisas Espaciais
(DAS/INPE) vm realizando um estudo da dinmica espao-temporal das estruturas
solares das regies ativas, atravs de observaes de satlites equipados com
telescpios de raios-X [21, 24]. Entretanto, estes estudos so feitos com imagens
bidimensionais sem qualquer informao sobre a estrutura tridimensional da coroa
solar. Desta forma, parmetros fsicos das estruturas magnticas (temperatura,
densidade e campo magntico) e geomtricos (altura, rotao e posio) esto sujeitos
a erros devido limitao espacial imposta pelas imagens bidimensionais. Motivados
por esta necessidade, esforos tm sido feitos para permitir a reconstruo
tridimensional de estruturas da coroa solar a partir de imagens 2D obtidas por
satlite.
Uma tcnica para reconstruo de estruturas da coroa solar a
tomografia espectral que possibilita a observao simultnea, do mesmo evento, em
diferentes freqncias do espectro eletromagntico. Imagens tomogrficas de raios-X
obtidas pelos telescpios do satlite Yohkoh mostram a emisso de energia de um loop
magntico em duas profundidades da atmosfera solar, sendo que a base do loop
emite raios-X duros, enquanto o topo emite raios-X moles. A Figura 1.4 mostra as
imagens tomogrficas da base e topo de um loop, obtidas pelos telescpios de raios-X
duros e raios-X moles do satlite Yohkoh, respectivamente.


(a) Imagem da base do loop (HXR). (b) Imagem do topo do loop (SXR).
FIGURA 1.4 Imagens tomogrficas de raios-X obtidas pelos telescpios do satlite Yohkoh.
CAPTULO 1 I NTRODUO

6

Mais do que observar imagens 2D, os cientistas tm um grande
interesse em visualizar a estrutura volumtrica dos loops. No entanto, devido a
limitaes fsicas dos telescpios de raios-X do satlite Yohkoh, a quantidade de
imagens tomogrficas disponveis no suficiente para visualizar a estrutura
tridimensional. Diante desta limitao, surge a necessidade de tcnicas de
reconstruo tomogrfica 3D para obter imagens intermedirias entre as imagens
disponveis [22, 24].
Neste documento, ser apresentado um mtodo de Reconstruo 3D de
Imagens Tomogrficas de Raios-X de Arcos Coronais em Ambiente Paralelo. O objetivo
deste trabalho reconstruir a estrutura magntica tridimensional de um loop, a partir
das imagens tomogrficas de raios-X do satlite Yohkoh. Como as sees transversais
do loop apresentam uma significativa mudana de forma e, principalmente, devido
inexistncia de outras informaes sobre a estrutura 3D do loop, a no ser as imagens
da base e do topo, os mtodos existentes de reconstruo 3D no so capazes de
gerar uma reconstruo realstica do arco. Para solucionar este problema, o mtodo
apresentado neste documento gera imagens intermedirias com uma mudana de
forma entre as imagens da base e topo. Esta deformao controlada por uma curva
Bezier em forma de arco, que define a estrutura do campo magntico do loop.
Os arcos coronais no so estticos e, por isso, h necessidade de
reconstrues tridimensionais de uma seqncia de imagens tomogrficas evoluindo
no tempo, para realizar um estudo da dinmica destes arcos. Desta forma, devido ao
grande volume de dados a serem processados, a reconstruo tomogrfica e a
visualizao dos dados precisam estar integradas em um ambiente paralelo de alto
desempenho. Com isso, ser possvel, no futuro, um estudo em trs dimenses da
dinmica espao-temporal dos arcos coronais.



CAPTULO 1 I NTRODUO

7

1.2 Viso Geral do Projeto
O projeto de mestrado Reconstruo 3D de Imagens Tomogrficas de Raios-X de Arcos
Coronais em Ambiente Paralelo tem como objetivo reconstruir um arco coronal da
atmosfera solar, a partir de duas imagens tomogrficas de raios-X do satlite Yohkoh.
Neste projeto, foi desenvolvido um mtodo de reconstruo 3D baseado em
metamorfose de imagem, controlado por uma curva Bezier, para reconstruir a arcada
magntica do loop. No processo de metamorfose, um mtodo de Interpolao 3D de
Imagens usando a Teoria de Estimao Bayesiana usado para estimar a intensidade dos
pixels de uma imagem intermediria entre um par de imagens.
Devido necessidade de obter a reconstruo 3D de arcos coronais em
um tempo razovel para estudo da dinmica espao-temporal, um programa
paralelo de reconstruo foi implementado com o auxlio de um Ambiente Visual de
Desenvolvimento de Programas Paralelos de Tempo Real [19], para ser executado em uma
mquina paralela usando DSPs [1]. O ambiente visual oferece suporte ao
desenvolvimento de aplicaes utilizando o kernel de tempo real Virtuoso [32], que
define apenas os objetos e servios de microkernel necessrios para o desenvolvimento
de aplicaes paralelas. Cada objeto de microkernel tarefa, semforo, recurso, fila,
canal, mapa de memria, timer e mailbox suporta um conjunto de servios para
sincronizao e comunicao entre tarefas, alocao de recursos, memria, etc.
Aps a reconstruo do loop, tcnicas de visualizao 3D podem ser
usadas para visualizar a estrutura tridimensional do arco magntico. Assim, uma
interface grfica de visualizao 3D fornecida pelo ambiente de desenvolvimento
IDL [6] foi adicionada ao projeto. O ambiente IDL oferece uma linguagem de
programao e os recursos necessrios para desenvolvimento de programas de
visualizao de dados.
O programa paralelo de reconstruo 3D e a interface grfica de
visualizao so integrados no ambiente paralelo atravs de uma interface grfica de
usurio desenvolvida na linguagem IDL.
CAPTULO 1 I NTRODUO

8

1.3 Organizao da Dissertao
Os prximos captulos apresentam os principais conceitos usados para
desenvolvimento do projeto de mestrado, como interpolao 3D de imagens,
metamorfose de imagens, reconstruo 3D e visualizao de volume, alm dos
fundamentos bsicos sobre sistemas paralelos e uma metodologia para
desenvolvimento de programas paralelos.
No Captulo 2 apresentado o mtodo de Interpolao 3D de Imagens
usando a Teoria de Estimao Bayesiana, que gera uma imagem intermediria entre um
par de imagens originais.
O Captulo 3 apresenta uma tcnica de metamorfose de imagens,
geralmente empregada para gerar efeitos especiais, mas que pode ser muito til em
aplicaes de reconstruo de volume.
O Captulo 4 introduz a reconstruo de volume, apresentando alguns
exemplos de reconstruo tomogrfica usando mtodos de interpolao e
metamorfose de imagens.
No Captulo 5 so abordadas as principais tcnicas de visualizao de
volume.
O Captulo 6 apresenta os fundamentos de sistemas paralelos e uma
metodologia para desenvolvimento e anlise de desempenho de programas
paralelos.
O Captulo 7 descreve o mtodo de reconstruo 3D de arcos coronais e
o Captulo 8 apresenta o programa de reconstruo 3D de imagens tomogrficas. Os
captulos seguintes apresentam os resultados obtidos, concluses e trabalhos futuros.





2
Interpolao 3D de Imagens usando
a Teoria de Estimao Bayesiana


O mtodo de Interpolao 3D de Imagens usando a Teoria de Estimao Bayesiana foi
desenvolvido por Mascarenhas et al. [14] para gerar uma imagem intermediria entre
um par de imagens originais. Este mtodo, baseado na Teoria de Estimao, usa um
estimador linear de mnimo erro mdio-quadrtico para estimar o valor dos pixels da
imagem intermediria. A Teoria de Estimao e o mtodo de interpolao 3D de
imagens so apresentados nas prximas sees. No final deste captulo, so includos
os resultados obtidos por Mascarenhas et al. na interpolao de uma imagem a partir
de duas imagens tomogrficas de raios-X do arco coronal e imagens de ressonncia
magntica de frutas.
O mtodo de interpolao bayesiana usado no projeto de reconstruo
3D descrito neste documento, para estimar a intensidade dos pixels das imagens
intermedirias do arco coronal.


CAPTULO 2 I NTERPOLAO 3D DE I MAGENS USANDO A TEORI A DE ESTI MAO BAYESI ANA

10

2.1 Teoria de Estimao Bayesiana
A Teoria de Estimao amplamente usada em vrias reas da cincia e engenharia.
Karl Frederich Gauss conhecido como o progenitor da Teoria de Estimao. Fisher,
Norbert Wiener, Rudolph E. Kalman e vrios outros expandiram o legado de Gauss
com vrios mtodos de estimao e algoritmos. A Teoria de Estimao resultado da
necessidade e tecnologia. Gauss, por exemplo, precisava prever os movimentos dos
planetas e cometas por medidas telescpicas. Esta necessidade levou ao mtodo dos
mnimos quadrados.

2.1.1 Estimao de parmetros
O problema de estimao consiste em determinar um parmetro desconhecido que
deve ser estimado em funo de amostras disponveis [28]. Esta tcnica conhecida
como estimao de parmetros. Exemplos de parmetros escalares so: mdia e
varincia
2
; exemplos de parmetros vetoriais
*
= [1 ... n]
T
so: vetor mdia ,
matriz de covarincia K, etc.
Definio 2.1. Um estimador

uma funo do vetor de observaes


X = [X1 ... Xn]
T
que estima o parmetro . O valor do estimador

denominado
estimativa de .
Definio 2.2. Um estimador

chamado de estimador linear de se for uma


funo linear do vetor de observaes X = [X1 .... Xn]
T
, ou seja,
(2.1)
onde b um vetor nx1 de coeficientes independentes de X.
Definio 2.3. Um estimador

chamado de estimador sem-vis de se


(2.2)
ou seja, o valor esperado da estimativa de igual ao parmetro que est sendo
estimado.

*
Ver Apndice B: Vetores Aleatrios.
,

X b
T
=
, )

( = E
CAPTULO 2 I NTERPOLAO 3D DE I MAGENS USANDO A TEORI A DE ESTI MAO BAYESI ANA

11

.
1

=
=
n
i
i
X
n

Definio 2.4. Um estimador

chamado de estimador de mnimo erro mdio-


quadrtico (MEMQ) se
(2.3)
onde

qualquer outro estimador.


2.1.1.1 Estimao de mdia
Seja uma varivel aleatria X com n observaes X1,...,Xn igualmente distribudas.
Uma estimativa da mdia = E[X] obtida por um estimador de mdia amostral
definido como
(2.4)

Calculando o valor esperado de , vemos que a equao (2.2) satisfeita:
(

=

=
n
i
i
X
n
E E
1
1
] [

=
=
n
i
i
X E
n
1
) (
1
n
n
). (
1
= = ,
ou seja, o estimador um estimador sem-vis para o parmetro .
2.1.1.2 Estimao de varincia
Dada uma varivel aleatria X com n observaes X1,...,Xn independentes e
igualmente distribudas, uma estimativa da varincia
2
= Var[X] pode ser obtida por
um estimador definido como
(2.5)
onde a mdia amostral definida na equao (2.4). Como o valor esperado de

( E = ( )
(

=
2
1
. (
1
E n X E
n
n
i
i
-
2
) = ( ) ( )
(

=
Var n X Var
n
n
i
i
.
1
1
=
=
(

n
2
2
.
1
n n
n
=
2
1

n
n
,
o estimador

viesado.
], )

[( ] )

[(
2 2
E E
, ) (
1

2
1

=
=
n
i
i
X
n
CAPTULO 2 I NTERPOLAO 3D DE I MAGENS USANDO A TEORI A DE ESTI MAO BAYESI ANA

12

,
1

=
=
N
k
k
N
X
Para obter um estimador sem-vis, multiplica-se a equao
2
1
)

(
n
n
E

= por
1 n
n
:
)

(
1

E
n
n
=
(

1 n
n
E = ( )
(


=
n
i
i
X
n n
n
E
1
2

1
.
1
= ( )
(


=
n
i
i
X
n
E
1
2

1
1
=
2

Assim, um estimador sem-vis para a varincia
2
o estimador de varincia amostral,
definido por
(2.6)

2.1.1.3 Estimao de vetor mdia
Sejam N amostras aleatrias X1,...,XN independentes e igualmente distribudas, onde
Xk o k-simo vetor aleatrio com n observaes X1,...,Xn, ou seja,
X1 = [X11 Xi1 K Xn1]
T

Xk = [X1k Xik K Xnk]
T

M
XN = [X1N XiN K XnN]
T
.

Um estimador do vetor mdia
T
N
] [
2 1
K = definido por
(2.7)
onde
T
N
] [
2 1
K = chamado de vetor mdia amostral.
2.1.1.4 Estimao de matriz de covarincia
Sejam N amostras aleatrias X1,...,XN independentes e igualmente distribudas, onde
Xk o k-simo vetor aleatrio com n elementos X1,...,Xn. Se o vetor mdia
conhecido, ento o estimador da matriz de covarincia K definido por

(2.8)

( ) .
1
1
2
1
2

=
n
i
i
X
n
S
( )( ) .
1

1
T
k
N
k
k
N
=

=
X X K
CAPTULO 2 I NTERPOLAO 3D DE I MAGENS USANDO A TEORI A DE ESTI MAO BAYESI ANA

13

Se o vetor mdia estimado pela mdia amostral (equao 2.7), o estimador
(2.9)
O elemento
ij
c da matriz de covarincia amostral K

dado por
(2.10)
onde Xik o i-simo componente da k-sima amostra Xk.

2.1.2 Estimao de Bayes
No problema de estimao, o mapeamento do espao de observao em uma
estimao chamado de regra de estimao [31]. Depois de observar R, a estimao do
parmetro a, denominada (R), calculada pela regra de estimao. Um modelo
geral do problema de estimao mostrado na Figura 2.1.







Fonte: VAN TREES, 1968, p. 130.
FIGURA 2.1 Modelo de Estimao.

preciso determinar uma funo de custo para todos os pares (a, (R)),
que uma funo de duas variveis contnuas denotada por C(a, ). A funo de
custo deve ser relacionada ao erro de estimao. Podemos definir este erro como
(2.11)
onde a

(R) o erro de estimao.


( ) ( ) a a a

= R R
( )( ) .
1
1

1
T
k
N
k
k
N

=

=
X X K
( )( ).
1
1

=
N
k
j jk i ik ij
X X
N
c
Mapeamento
probabilstico at o
espao de observao
Espao de
Parmetro
Espao de Observao
Regra de
Estimao
R
(R)
A
CAPTULO 2 I NTERPOLAO 3D DE I MAGENS USANDO A TEORI A DE ESTI MAO BAYESI ANA

14

A funo de custo relacionada ao erro de estimao, ento podemos express-la em
termos do erro, C(a, ) = C(a

). Na Figura 2.2(a), a funo de custo o quadrado do


erro,
(2.12)
Na Figura 2.2(b), a funo de custo o valor absoluto do erro,
(2.13)
Na Figura 2.2(c), assumimos custo zero para todos os erros menores que
2

.
Se A

>
2

, assumimos um valor uniforme:



(2.14)






(a) funo de custo de erro mdio- (b) funo de custo de erro absoluto. (c) funo de custo de erro uniforme.
quadrtico.
Fonte: VAN TREES, 1968, p.55
FIGURA 2.2 Tipos de funes de custo.

Devemos encontrar uma estimativa que minimize o valor esperado do
custo (risco). Uma vez especificadas a funo de custo e a densidade de probabilidade
a priori pa(A), a expresso para o risco pode ser escrita:
(2.15)

Para custos que so funes de apenas uma varivel,
(2.16)
a


C(a

)
a

2

a


C(a

)
|a

|
C(a

)
a


1


+

+

= R R R
r
d A p A C dA
a
) , ( )] ( [
,
( ) | | { }

+

+

= = R R R R
r
d A p A C dA a a C E
a
) , ( )] ( , [ ,
,
( )

>

=
.
2
, 1
,
2
, 0

a
a
a C
2
) (

a a C =

a a C = ) (
CAPTULO 2 I NTERPOLAO 3D DE I MAGENS USANDO A TEORI A DE ESTI MAO BAYESI ANA

15

O estimador de Bayes o estimador que minimiza o risco para a funo
de custo dada. Para a funo de custo da Figura 2.2(a), o risco corresponde ao erro
mdio quadrado. Denominamos o risco para o critrio de erro mdio-quadrtico
como Rms. Substituindo a equao (2.12) em (2.16), temos
(2.17)
Expressando a densidade conjunta pelo produto ) | ( ) ( ) , (
| ,
R R R
r r r
A p p A p
a a
= , temos
(2.18)
Agora a integral interna e pr(R) so no-negativas. Portanto, podemos minimizar ms
minimizando a integral interna. Denominamos esta estimativa ms(R). Para encontr-
la, diferenciamos a integral interna em relao a (R):
(2.19)
Igualando o resultado a zero e observando que a segunda integral igual a 1, temos
(2.20)
Para verificarmos se ms(R) mnimo, precisamos obter a segunda derivada:
(2.21)
A equao (2.20) conhecida como a mdia da densidade a posteriori (ou esperana
condicional ou mdia condicional) de a, dado R = r. Agora, se (R) a mdia
condicional, a integral interna em (2.18) a varincia condicional de R = r. Com isso,
o risco ms o valor esperado da varincia condicional para todas as observaes de
R.
Para encontrar a estimao de Bayes para o critrio de valor absoluto na
Figura 2.2(b), escrevemos:
(2.22)

+

+

= ) , ( )] ( [
,
2
R R R
r
A p A d dA
a ms

+

|
+

| = ) ( )] ( [ ) (
a
2
R R R R
r
r
A p A dA p d
ms
( ) ( ) ( )

+

|
+

|
+

|
| + | = | dA A p dA A Ap A p A dA
d
d
R R R R R
r r r a a a
2
) ( 2 2 )] ( [
( )

+

|
| = dA A Ap a
ms
R R
r a
) (
( ) 2 )] ( [
a
2
2
2
=
)
`

+

|
dA A p A
d
d
r
R R
| | ( )

+

|
+

| | | = R R R R A p A dA p d
r
r abs
a
) ( ) (
CAPTULO 2 I NTERPOLAO 3D DE I MAGENS USANDO A TEORI A DE ESTI MAO BAYESI ANA

16

Como no caso do erro mdio quadrtico, a minimizao da integral
interna resulta na minimizao de abs. Podemos reescrever a integral interna como
(2.23)
Diferenciando com relao a (R):


(2.24)
Igualando o resultado a zero, temos:
(2.25)
isto , a definio da mediana da densidade a posteriori de a, dado R = r. Logo, abs(R) a
mediana de a, dado R = r.
O terceiro critrio a funo de custo uniforme. A expresso do risco
(2.26)

Neste caso, para minimizar unif devemos maximizar a integral interna. Por isso,
supomos que seja arbitrariamente pequeno, mas diferente de zero.



FIGURA 2.3 Densidade a posteriori.
A Figura 2.3 mostra uma densidade a posteriori tpica. Vemos que para
delta pequeno a melhor escolha para (R) o valor de A onde a densidade a posteriori
tem seu mximo. Denominamos a estimao para este caso especial como map(R), a
estimao mxima a posteriori. Na seqncia usamos map(R) sem mais referncias
funo de custo uniforme.
( ) ( )

+
|

|
| = |
(R)
r a
(R)
r a
abs
abs
dA R A p dA R A p
| | ( ) | | ( ) | | ( )

+
|

|
+

|
+ | = | | |
) (
a
) (
a a
| ) ( ) ( ) (
R
r
R
r r
R A p R A dA R A p A R dA R A p R A dA
( ) ( )


|

|
| | =
(R)
r a
(R)
r a
dA R A p (R) dA R A p (R)
( ) ( )

+

|
(
(
(

| =
2
) (
2
) (
a
1
R
R
r
r unif
unif
unif
dA R A p R dRp
( ) R A p
r
|
| a
A
Mximo


( ) ( )= | + |

+
|

|
) (
a
) (
a
)] ( [ ] ) ( [
R
r
R
r
R A p R A dA R A p A R dA
d
d
CAPTULO 2 I NTERPOLAO 3D DE I MAGENS USANDO A TEORI A DE ESTI MAO BAYESI ANA

17

Para encontrar map(R), devemos ter a localizao do mximo de
( ) R A p
r
|
| a
. Podemos encontrar a localizao do mximo de ln ( ) R A p
r
|
| a
facilmente, o
que mais conveniente. Se o mximo est dentro do limite permitido de A e
ln ( ) R A p
r
|
| a
tem uma derivada primeira contnua, ento uma condio necessria, mas
no suficiente para um mximo pode ser obtida diferenciando ln ( ) R A p
r
|
| a
em relao
a A e igualando o resultado a zero:
(2.27)
Referimo-nos equao acima como a equao MAP (mxima a
posteriori). Em cada caso devemos verificar para ver se a soluo o mximo
absoluto. Devemos reescrever a expresso para pa
|
r(A|R) para separar a parte do
vetor observado R e o conhecimento a priori:
(2.28)
Usando logaritmos,
(2.29)
Para estimao MAP, estamos interessados apenas em encontrar o
valor de A, onde o lado esquerdo mximo. Como o ltimo termo direito no uma
funo de A, podemos considerar apenas a funo
(2.30)
O primeiro termo mostra a dependncia probabilstica de R em A e o segundo
descreve o conhecimento a priori. A equao MAP pode ser escrita como
(2.31)

( ) ( ) ) ( ln ) ( ln ln ln
r a
R p A p A R p R A p
r a
a r
+ | = |
| |
( ) ) ( ln ln ) (
r
A p A R p A l
a
a
+ | =
|
( )
0
ln
) (
a
=

|
=
|
|
R A
r
A
R A p
( )
( )
) (
) (
r
a
R p
A p A R p
R A p
r
a
a
r
|
= |
|
|
( )
( )
0
ln
ln
) (
) ( ) (
r
) (
=

|
=

= =
|
=
| | |
R A
a
R A
a
R A
A
A p
A
A R p
A
A l
CAPTULO 2 I NTERPOLAO 3D DE I MAGENS USANDO A TEORI A DE ESTI MAO BAYESI ANA

18

2.1.3 Filtro de Wiener
Filtro de Wiener um mtodo de regularizao estocstica que fornece a estimao
linear de mnimo erro mdio-quadrtico do(s) parmetro(s) aleatrio(s) a partir dos
dados. O propsito do filtro produzir uma estimativa de um valor desejado, tal que
o erro de estimao seja mnimo. O filtro de Wiener pode resolver o problema de
minimizar o erro mdio-quadrtico, sob a restrio de operaes lineares nos dados.
O problema da estimao linear de mnimo erro mdio-quadrtico
simplificado se procurada uma estimativa X0 por uma combinao linear de X1,...,
Xn. Neste caso, o problema encontrar n constantes a1,..., an tal que o erro mdio-
quadrtico
e = E{[X0 (a1X1 + ... + anXn)]
2
} (2.32)
seja mnimo. Estas constantes podem ser determinadas em termos dos segundos
momentos
Rij = E{XiXj} (2.33)
das variveis aleatrias dadas. Se E{Xi} = 0, ou melhor, se as variveis aleatrias
tiverem mdia zero, ento Rij a covarincia de Xi e Xj. Esta suposio feita sem
perda de generalidade porque esta anlise pode ser aplicada varivel aleatria
Xi - E{Xi} (2.34)
cuja mdia igual a zero.
Pelo Princpio da Ortogonalidade, as constantes ai que minimizam e so
tais que o erro
X0 (a1X1 + ... + anXn) (2.35)
ortogonal a X1,..., Xn; isto ,
E{[X0 (a1X1 + ... + anXn)] Xi}= 0, para i = 1, ..., n (2.36)
O erro mnimo mdio-quadrtico dado por
em = E{[X0 (a1X1 + ... + anXn)] X0} = R00 (a1R01 + ... + anR0n) (2.38)
onde ai so as solues do problema.
CAPTULO 2 I NTERPOLAO 3D DE I MAGENS USANDO A TEORI A DE ESTI MAO BAYESI ANA

19

Este sistema pode ser escrito na forma
R11a1 + R12a2 + ... + R1nan = R01
R21a1 + R22a2 + ... + R2nan = R02
. . . . . . . . . . . . . . . . . . . . . . . . .
Rn1a1 + Rn2a2 + ... + Rnnan = R0n
O sistema acima o sistema de equaes normais utilizado no mtodo
de interpolao 3D de imagens para obter os coeficientes necessrios para a
estimao da imagem intermediria.

2.2 Interpolao 3D de Imagens usando a Teoria de
Estimao Bayesiana
Um novo mtodo de Interpolao 3D de Imagens usando a Teoria de Estimao Bayesiana
*

foi desenvolvido por Mascarenhas et al. [14] para interpolar uma imagem
intermediria entre um par de imagens originais. Este mtodo de interpolao estima
o valor dos pixels da imagem intermediria, usando um estimador linear de mnimo
erro mdio-quadrtico. Para fazer a interpolao 3D usando a Teoria de Estimao
Bayesiana sem uma imagem intermediria a priori, necessrio obter algumas
informaes como:
informao estatstica das imagens observadas;
informao estatstica sobre a dependncia do pixel a ser estimado com os
pixels das duas imagens observadas; e
informao estatstica a priori sobre a imagem a ser interpolada.
A informao a priori da imagem a ser estimada deve ser postulada. Todas as
informaes necessrias para interpolao so definidas na prxima seo.


*
Dissertao do Programa de Ps-Graduao em Cincia da Computao da UFSCar (1999).
CAPTULO 2 I NTERPOLAO 3D DE I MAGENS USANDO A TEORI A DE ESTI MAO BAYESI ANA

20

A interpolao da imagem local, ou seja, valores de pixels em uma
pequena janela (3x3, 5x5 ou 7x7) so observados nas imagens originais A e B. Na
imagem interpolada, o pixel central da janela estimado com os valores das janelas
observadas (Figura 2.4). As janelas so simultaneamente deslizadas sobre as imagens
observadas para obter o valor estimado de cada pixel da imagem interpolada.





FIGURA 2.4 Interpolao local com janelas deslizantes.
O mtodo de interpolao 3D original, implementado em MATLAB, foi
convertido para a linguagem IDL para ser usado neste projeto de mestrado. As
sees seguintes descrevem o mtodo de interpolao 3D e a implementao IDL.

2.2.1 Estimao de parmetros estatsticos
As informaes estatsticas necessrias para a interpolao 3D de imagens usando a
Teoria de Estimao Bayesiana devem ser estimadas. Estas informaes
compreendem a mdia amostral e varincia amostral das imagens observadas A e B, e a
matriz de covarincia amostral entre as duas imagens observadas. Estes parmetros so
descritos nas sees 2.2.1.1 e 2.2.1.2.
A informao estatstica sobre a dependncia do pixel central a ser
estimado com os pixels das imagens observadas o vetor de covarincias, descrito na
seo 2.2.1.3. Como no h uma imagem a priori, a informao estatstica sobre a
imagem interpolada foi definida como a mdia e a varincia, calculadas em funo das
imagens observadas, conforme descrito na seo 2.2.1.1.
Imagem A
Imagem B
Imagem interpolada
Pixel estimado
CAPTULO 2 I NTERPOLAO 3D DE I MAGENS USANDO A TEORI A DE ESTI MAO BAYESI ANA

21

2.2.1.1 Mdia amostral e varincia amostral das imagens observadas e da imagem a priori
Seja uma varivel aleatria X = [X1KXn]
T
de n observaes denotadas pelas variveis
aleatrias Xi, com i = 1,...,n. A mdia amostral e varincia amostral
2
S de X foram
definidas nas equaes (2.4) e (2.6), respectivamente como

=
=
n
i
i
X
n

1
1
e ( )
2
1
2

1
1

=
n
i
i
X
n
S , com i = 1, ..., n.
Considere as imagens observadas como processos estocsticos
estacionrios, descritos em cada pixel pelas variveis aleatrias A e B. O valor da i-
sima observao Xi corresponde intensidade do i-simo pixel da imagem A ou B.
No programa IDL
*
, a seqncia de comandos
mA = mean(A) ; mdia da imagem A.
mB = mean(B) ; mdia da imagem B.

vA = variance(A) ; varincia da imagem A.
vB = variance(B) ; varincia da imagem B.
calcula a mdia amostral e varincia amostral sobre as imagens inteiras.
Como no existe uma imagem a priori da imagem interpolada, a
informao a priori foi especificada pela mdia e varincia da imagem, calculada em
funo das imagens observadas. Assim, a mdia a priori foi definida como a mdia
aritmtica das mdias amostral das imagens observadas. A varincia foi definida
como a mdia geomtrica das varincias amostral das imagens observadas. Isto pode
ser calculado em IDL, com
mC = (mA + mB) / 2 ; mdia da imagem a priori.
vC = sqrt(vA * vB) ; varincia da imagem a priori.

Os valores de mdia amostral devem ser subtrados das imagens
observadas para obter imagens de mdia zero e facilitar o clculo da matriz de
covarincia. No final do processo de estimao, o valor de mdia amostral da
imagem a priori deve ser adicionado imagem interpolada.

*
Ver Apndice D: Cdigo fonte IDL.
CAPTULO 2 I NTERPOLAO 3D DE I MAGENS USANDO A TEORI A DE ESTI MAO BAYESI ANA

22

2.2.1.2 Matriz de covarincia amostral entre imagens observadas
A matriz de covarincia amostral K foi definida na equao (2.8) como
( )( )
T
k
N
k
k
N

1

1
=

=
X X K ,
onde N o nmero de vetores observados, Xk = [X1KXn]
T
o k-simo vetor
observado, e = [ 1K n]
T
o vetor mdio amostral de X, definido na equao
(2.7).
Como o valor de mdia amostral j foi subtrado de cada imagem
observada, o vetor mdio amostral das observaes X um vetor nulo. Assim, a
matriz de covarincia amostral KXX das imagens observadas pode ser expressa por
(2.39)
Os valores Xi do vetor observado Xk = [X1KXn]
T
so obtidos das janelas
de observao das imagens A e B, lexicograficamente ordenados por colunas, linhas e
imagens, como mostra a Figura 2.5. Por exemplo, para uma janela de observao 3x3
em cada uma das imagens, o vetor coluna Xk = [X1KXn]
T
tem 18 variveis aleatrias
Xi. A varivel Xi assume o valor de intensidade do pixel xi, com i = 1,...,9 para pixels da
janela A e i = 10,...,18 para pixels da janela B. Para janelas 5x5, o tamanho do vetor Xk
50, sendo 25 pixels da janela A e 25 da janela B. Para janelas 7x7, o tamanho do vetor
98, 49 pixels de cada janela.
(
(
(

9 8 7
6 5 4
3 2 1
x x x
x x x
x x x

(
(
(

18 17 16
15 14 13
12 11 10
x x x
x x x
x x x

| |
T
k
x x x x x
18 10 9 2 1
K K = X
FIGURA 2.5 Janelas de observao 3x3.

=
=
N
k
T
k k
N
1
1
X X K
XX
Imagem A
Imagem B
CAPTULO 2 I NTERPOLAO 3D DE I MAGENS USANDO A TEORI A DE ESTI MAO BAYESI ANA

23

Deslizando simultaneamente as janelas de observao sobre as imagens
A e B, obtemos N vetores Xk, com k = 1,...,N. O nmero de vetores de observao
depende do tamanho das imagens e do tamanho das janelas de observao.
Dado os vetores de observao, podemos estimar a matriz de
covarincia usando a equao (2.39). A matriz de covarincia amostral KXX tem
tamanho 18x18 para janelas 3x3. O clculo resulta em uma matriz de covarincia
(
(
(
(
(
(
(
(
(
(
(
(

=
vB x x x x corrAB x x x x
x x vB x x x x corrAB x x
x x x x vB x x x x corrAB
corrAB x x vA x x
x x corrAB x x x x vA x x
x x x x corrAB x x x x vA
... )
11
,
18
cov( )
10
,
18
cov( ... )
2
,
18
cov( )
1
,
18
cov(
... ... ... ... ... ... ... ...
)
18
,
11
cov( ... )
10
,
11
cov( )
9
,
11
cov( ... )
1
,
11
cov(
)
18
,
10
cov( ... )
11
,
10
cov( )
9
,
10
cov( ... )
2
,
10
cov(
... ... )
10
,
9
cov( ... ... )
1
,
9
cov(
... ... ... ... ... ... ... ...
)
18
,
2
cov( ... )
10
,
2
cov( )
9
,
2
cov( ... )
1
,
2
cov(
)
18
,
1
cov( ... )
11
,
1
cov( )
9
,
1
cov( ... )
2
,
1
cov(
XX
K
,
onde
cov(xi, xi) = vA, para i = 1, ..., 9.
cov(xi, xi) = vB, para i = 10,...,18.
cov(xi, xj) = cov(xj, xi) = corrAB, para i = 1,..., 9 e j = 10,..., 18, sendo i
correspondente a j.
cov(xi, xj) = cov(xj, xi), para os elementos fora das diagonais.

Assim, os valores dos elementos das diagonais do primeiro e segundo
quadrante da matriz correspondem ao valor estimado da varincia das imagens A e
B, respectivamente. Os valores dos elementos das diagonais do segundo e terceiro
quadrante correspondem correlao espectral entre as imagens A e B. Todos os
elementos fora da diagonal possuem um valor correspondente covarincia entre o
pixel xi e xj, com i, j = 1,...,18.
O clculo da matriz de covarincia amostral foi implementado em IDL
usando a seqncia de comandos


CAPTULO 2 I NTERPOLAO 3D DE I MAGENS USANDO A TEORI A DE ESTI MAO BAYESI ANA

24

n = 0.0
for i = 1, nx - 4 do begin
for j = 1, ny - 4 do begin
A1 = A[i:i+2, j:j+2] ; janela 3x3 da imagem A.
B1 = B[i:i+2, j:j+2] ; ; janela 3x3 da imagem B.
A9 = reform(A1,9) ; vetor linha com 9 pixels de A.
B9 = reform(B1,9) ; vetor linha com 9 pixels de B.
X[0:8] = A9 ; vetor de observao com 18 pixels.
X[9:17] = B9
Xt = transpose(X) ; vetor coluna com 18 pixels.
t = Xt ## X ; multiplicao de vetores.
Kxx = Kxx + t ; somatria de matrizes (18x18).
n = n + 1.0 ; nmero de vetores observados.
end
end

Kxx = Kxx / n ; matriz de covarincia amostral.
2.2.1.3 Vetor de covarincias entre pixels estimados e pixels observados
A informao estatstica sobre a dependncia entre o pixel a ser estimado e os pixels
observados nas imagens A e B foi definida por um vetor de covarincias
YX
k . O vetor
de covarincias foi postulado para ser separvel no domnio espacial e espectral. Os
coeficientes de correlao espacial nas direes horizontal
h
e vertical
v
foram
selecionados para valores entre 0,95 e 1,0. O coeficiente de correlao espectral 3D
entre o pixel a ser estimado e os pixels correspondentes nas imagens observadas
foram supostos como a raiz quadrada do coeficiente de correlao entre as imagens
observadas, experimentalmente estimados por valores positivos. Em IDL, calculamos
corrAB = correlate(A, B) ; Coeficiente de correlao espectral entre
; imagens observadas.
corr3D = sqrt(corrAB) ; Coeficiente de correlao espectral entre
; uma imagem observada e a interpolada.

Como o coeficiente de correlao
ij
entre os elementos i e j pode ser
expresso por
j i
ij
v v
j i
.
) , cov(
= ,
ento, a covarincia entre uma imagem observada e a imagem interpolada
calculada por
covAC = corr3D * sqrt(vA*vC) ; Covarincia entre a imagem A e a
; imagem interpolada.
covBC = corr3D * sqrt(vB*vC) ; Covarincia entre a imagem B e a
; imagem interpolada.
CAPTULO 2 I NTERPOLAO 3D DE I MAGENS USANDO A TEORI A DE ESTI MAO BAYESI ANA

25

Os coeficientes de correlao espacial so determinados pelas distncias
entre a posio do pixel a ser estimado e a posio correspondente dos pixels em cada
uma das janelas de observao (Figura 2.5). Por exemplo, o pixel central y est
distante do pixel x1 (ou x10 na imagem B) um pixel na direo horizontal e um na
direo vertical. Assim, a covarincia entre y e x1 (ou x10) foi postulada como
cov(y, x1) = covAC .
v h
.
cov(y, x10) = covBC .
v h
.
Desta forma, o vetor de covarincias para uma janela de observao 3x3
fica determinado por
| | ) , cov( ... cov ... ) , cov( ) , cov( ... cov ... ) , cov(
18 10 9 1
x y BC x y x y AC x y
YX
= k ,
onde cov(y, xi) especificada pela covarincia espectral e espacial, de acordo com a
distncia entre o pixel central y e o pixel xi nas imagens observadas. Em IDL, o clculo
do vetor de covarincias foi implementado como segue
roh = 1.0 ; coeficiente de correlao horizontal.
rov = 1.0 ; coeficiente de correlao vertical.

cAh = covAC*roh
cAv = covAC*rov
cAhv = covAC*roh*rov
cBh = covBC*roh
cBv = covBC*rov
cBhv = covBC*roh*rov

; Vetor de covarincias entre uma imagem observada e o
; ponto a ser estimado.
kyx = [ cAhv, cAv, cAhv, cAh, covAC, cAh, cAhv, cAv, cAhv,
cBhv, cBv, cBhv, cBh, covBC, cBh, cBhv, cBv, cBhv ]
2.2.2 Interpolador linear mdio-quadrtico
Seja X o vetor de observaes nas janelas 3x3 das imagens A e B, e Y a varivel
aleatria escalar do pixel a ser estimado no centro da janela. De acordo com o
princpio da ortogonalidade, o estimador linear de mnimo erro mdio-quadrtico de Y,
baseado no vetor observado X, dado por
(2.40)

, X
T
a Y =
CAPTULO 2 I NTERPOLAO 3D DE I MAGENS USANDO A TEORI A DE ESTI MAO BAYESI ANA

26

onde
1
) (

=
XX YX
T
a K k um vetor coluna de 18 coeficientes que minimizam o erro da estimao,
] [
T
YX
Y E X k = o vetor de covarincias entre o pixel a ser estimado e as imagens observadas,
1 1
] [

=
T
XX
E XX K a matriz inversa da matriz de covarincia amostral entre as imagens
observadas.
Os coeficientes a foram calculados em IDL com
invKxx = invert(Kxx) ; matriz inversa de Kxx.
ax = kyx ## invKxx ; coeficientes procurados.
Depois de encontrados os coeficientes, os pixels da imagem interpolada
devem ser estimados usando a equao (2.40). Deslizando as janelas de observaes
nas imagens A e B, obtemos N vetores X para interpolar cada pixel central das N
janelas de observao.
A maneira mais eficiente de fazer isso em IDL transformando o vetor
de coeficientes a em duas matrizes 3x3. Os primeiros nove elementos do vetor a so
multiplicados ponto a ponto pelos elementos da janela A e os ltimos nove
elementos de a so multiplicados pelos elementos da janela B. Para completar o
processo de estimao, a mdia amostral da imagem interpolada adicionada
imagem.
a1 = reform(ax,9,2) ; transforma vetor linha 1x18 em matriz 2x9.
a2 = a1[*,0] ; vetor linha com primeiros 9 elementos.
a3 = a1[*,1] ; vetor linha com ltimos 9 elementos.
a4 = reform(a2,3,3) ; transforma vetor linha 1x9 em matriz 3x3.
a5 = reform(a3,3,3)

ITP = convol(A,a4) + convol(B,a5) ; multiplicao ponto a ponto
; pelos coeficientes 3x3.

ITP = ITP + mC ; imagem interpolada final.
O erro mdio-quadrtico da estimao obtido por
T
YX XX YX
Y ) ( ) ( ) var( MSE
1
k K k

= ,
e calculado por
erro = vC (kyx ## invKxx ## TRANSPOSE(kyx)) ; erro de interpolao.
.

CAPTULO 2 I NTERPOLAO 3D DE I MAGENS USANDO A TEORI A DE ESTI MAO BAYESI ANA

27

2.3 Aplicaes de Interpolao 3D de Imagens
O mtodo de interpolao 3D foi testado por Mascarenhas et al. para interpolar uma
imagem intermediria entre as imagens originais de um arco coronal e de um tomate.
Para usar este mtodo em reconstruo 3D de imagens, seria necessrio gerar vrias
imagens intermedirias.
2.3.1 Imagens de raios-X de um arco coronal
Imagens do loop em duas diferentes profundidades da atmosfera solar foram
interpoladas usando uma janela de observao 3x3, com coeficientes de correlao
espacial igual a 0,99 ou 1,0. A Figura 2.6 mostra as imagens originais do topo e da
base do loop e as imagens interpoladas.


(a) Imagem A (topo do loop). (b) Imagem B (base do loop).



(c) Interpolada com coeficiente 0,99 (d) Interpolada com coeficiente 1,0.

FIGURA 2.6 Imagens originais e interpoladas com janela de observao 3x3.


CAPTULO 2 I NTERPOLAO 3D DE I MAGENS USANDO A TEORI A DE ESTI MAO BAYESI ANA

28

A mdia a priori da imagem interpolada a mdia aritmtica das
mdias das imagens observadas e, a varincia a priori a mdia geomtrica das
varincias das imagens observadas.

Imagem Mdia Varincia
A 43 1603
B 39 1153
Interpolada 41 1360

Os valores da mdia, varincia e erro das imagens interpoladas so:
Imagem interpolada com
coeficiente de correlao
Mdia Varincia
0,99 41 674
1,00 41 707
2.3.2 Imagens de ressonncia magntica de um tomate
As duas imagens do tomate, cedidas pela Embrapa Instrumentao Agropecuria
(So Carlos), foram interpoladas com janelas de observao 3x3 e coeficiente de
correlao igual a 0,99 e 1,0.

(a) Imagem original A. (b) Imagem original B.


(c) Interpolada com coeficiente 0,99. (d) Interpolada com coeficiente 1,0.

FIGURA 2.7 Imagens originais de ressonncia magntica de um tomate e imagens interpoladas.
CAPTULO 2 I NTERPOLAO 3D DE I MAGENS USANDO A TEORI A DE ESTI MAO BAYESI ANA

29

As mdias e varincias das imagens so:
Imagem Mdia Varincia
A 49 5271
B 53 6302
Interpolada 51 5764

Os valores da mdia e varincia das imagens interpoladas so:




O mtodo de interpolao de imagens apresentado neste captulo baseia-se na
interpolao da intensidade dos pixels. No prximo captulo, um mtodo de
metamorfose de imagens para interpolao de forma e cor dos pixels apresentado.
Imagem interpolada com
coeficiente de correlao
Mdia Varincia
0,99 52 4775
1,0 52 4931


3
Metamorfose de Imagens


Metamorfose de imagens ou morphing uma tcnica usada para obter a
transformao de uma imagem em outra [35]. As tcnicas de morphing de imagens
foram largamente usadas na indstria de entretenimento para criar efeitos especiais
em comerciais de televiso, vdeo clips e filmes. O processo de morphing consiste de
uma combinao de deformao de imagens e interpolao de cor para gerar uma
seqncia de n imagens intermedirias entre a imagem inicial A e final B (Figura 3.1).
Quando as imagens intermedirias so vistas seqencialmente, a imagem inicial se
transforma na imagem final, com uma mudana progressiva de forma e cor. Nas
prximas sees, apresentado um mtodo simples de interpolao de imagens,
alm de tcnicas de deformao e metamorfose de imagens.






FIGURA 3.1 Processo de metamorfose de imagens.






Deformao
Interpolao de cor
A
B
A
n
B
n

I
n

Imagem Inicial
Imagens Intermedirias
Imagem Final
Deformao
Imagens Deformadas
CAPTULO 3 METAMORFOSE DE I MAGENS

31

3.1 Interpolao de Imagens
Uma tcnica simples de interpolao de imagem gera uma imagem de sada atravs
da mistura de cores das imagens de entrada. O valor de cada pixel na imagem de
sada uma combinao dos valores dos pixels correspondentes nas imagens de
entrada. Os coeficientes da combinao de cor definem a proporo da contribuio
de cada imagem. Estas propores so aplicadas de forma que os valores dos pixels
no excedam o valor mximo. Dadas as imagens A e B nas Figuras 3.2(a) e 3.2(b),
uma nova imagem com 50% de cor da imagem A e 50% da imagem B calculada por
I(x, y) = 0,5.A(x, y) + 0,5.B(x, y). A Figura 3.2(c) mostra o resultado da interpolao.

(a) (b) (c)

Fonte: GOMES, 1998.
FIGURA 3.2 Combinao de cor das imagens.

Uma tcnica de animao bastante simples, chamada cross-dissolve, gera
uma seqncia de imagens intermedirias com a mistura de cores das imagens inicial
A e final B, para obter um efeito de transio suave entre as duas imagens [5].
As imagens intermedirias so geradas por uma combinao
It(x, y) = f(t).A(x, y) + g(t).B(x, y), tal que f(0) = 1, g(0) = 0, f(1) = 0, g(1) = 1 e
f(t) + g(t) = 1, para todo t variando de 0 a 1. Uma operao tpica o cross-dissolve com
interpolao linear definido por It(x, y) = (1- t).A(x, y) + t.B(x, y).






FIGURA 3.3 Funes de cross-dissolve linear.
+ =
t
g(t)
f(t)
CAPTULO 3 METAMORFOSE DE I MAGENS

32

No cross-dissolve linear, as propores da mistura entre as imagens A e
B mudam linearmente de 100% de A e 0% de B para 0% de A e 100% de B. Desta
forma, quando as imagens intermedirias so mostradas seqencialmente, a imagem
A continuamente atenuada, enquanto a imagem B aumenta em intensidade. A
Figura 3.4 mostra um exemplo de animao usando cross-dissolve linear. As imagens
3.4(a) e 3.4(d) representam as imagens A e B, respectivamente. A imagem 3.4(b) foi
gerada com 60% da informao de cor da imagem A e 40% da imagem B; a imagem
3.4(c) foi gerada com 40% de A e 60% de B.

(a) (b) (c) (d)
Fonte: GOMES, 1998.
FIGURA 3.4 Seqncia de imagens geradas com cross-dissolve linear.
A tcnica cross-dissolve foi usada por dcadas pela indstria de filme e
vdeo, para obter efeitos de transio entre dois objetos diferentes com formas
similares. No entanto, esta e outras tcnicas de interpolao de intensidade ou cor
dos pixels da imagem, como o mtodo de Interpolao 3D de Imagens usando a Teoria de
Estimao Bayesiana, no apresentam um resultado realstico quando as duas imagens
tm formas diferentes. Isto pode ser observado na seqncia de imagens acima.
Neste caso, tcnicas baseadas em interpolao de forma, como morphing de imagens,
podem ser usadas para melhorar a qualidade da animao.
Uma tcnica de metamorfose de imagem consiste de uma progressiva
deformao das imagens inicial e final, seguida de interpolao de cor das imagens
deformadas, para gerar as imagens intermedirias da seqncia de animao. A
seguir, os conceitos bsicos de deformao de imagens so apresentados.


CAPTULO 3 METAMORFOSE DE I MAGENS

33

3.2 Deformao de Imagens
Deformao de imagens ou warping 2D uma transformao geomtrica
bidimensional que gera a distoro de uma imagem [36]. Este tipo de transformao
possui diversas aplicaes, como por exemplo, em sensoriamento remoto para
corrigir distores causadas por dispositivos de imageamento por satlite e,
principalmente, na indstria de entretenimento para gerar efeitos especiais em filmes
e comerciais.
Uma deformao de imagem pode ser diretamente especificada por
uma funo de mapeamento que estabelece a correspondncia espacial entre todos os
pontos da imagem de entrada e os pontos da imagem deformada. Cada pixel da
imagem de entrada mapeada para uma nova posio, gerando uma imagem
deformada. Existem duas classificaes de tcnicas de deformao: deformao baseada
em malha e deformao baseada em caracterstica. Na deformao baseada em malha,
uma malha irregular define a transformao de deformao. Na deformao por
caractersticas, somente as caractersticas da imagem so especificadas. Um caso
importante de warping baseado em caractersticas o da especificao baseada em
pontos, onde cada caracterstica indicada por pares de pontos de controle na
imagem. A Figura 3.5(c) mostra o resultado da deformao de uma imagem, usando
uma especificao por malha ou pontos, como mostram as Figuras 3.5(a) e 3.5(b).

(a) (b) (c)
FIGURA 3.5 Mtodos de deformao de imagem baseados em malha ou pontos.
Em tcnicas de metamorfose de imagens, a deformao baseada em
malhas ou caractersticas usada numa etapa preliminar da interpolao de cor, para
gerao das imagens intermedirias.
CAPTULO 3 METAMORFOSE DE I MAGENS

34

3.3 Metamorfose de Imagens
Metamorfose ou morphing de imagens uma tcnica usada para fazer a metamorfose
de uma imagem em outra [35]. A idia gerar uma seqncia de imagens
intermedirias que representam uma transformao suave de forma e cor de uma
imagem para outra. O processo de morphing consiste de deformao, de modo que as
duas imagens tenham a mesma forma, seguida de interpolao de cor das imagens
deformadas [9, 25]. A Figura 3.6 ilustra o processo de deformao de duas imagens,
combinada com interpolao de cor das imagens deformadas para gerar uma nova
imagem.

(a) (b) (c)
Fonte: GOMES, 1998.
FIGURA 3.6 Deformao de imagens e interpolao de cor das imagens deformadas.
A seqncia de imagens da animao gerada por uma deformao
que distorce progressivamente a primeira imagem na segunda. Uma deformao
inversa distorce a segunda imagem na primeira. Simultaneamente ao processo de
deformao, um cross-dissolve entre a primeira imagem, gradualmente distorcida e
desvanecida, e a segunda imagem, no incio totalmente distorcida e desvanecida,
gera as imagens intermedirias finais. Desta forma, as contribuies de cor das
imagens deformadas so amenizadas quando esto muito distorcidas. Quando vistas
em seqncia, as imagens intermedirias produzem uma animao da primeira
imagem se transformando suavemente na segunda (Figura 3.7).

Fonte: GOMES, 1998.
FIGURA 3.7 Seqncia de imagens geradas com morphing.
+ =
CAPTULO 3 METAMORFOSE DE I MAGENS

35

O problema principal de morphing de imagens , basicamente, como as
imagens deformadas so efetivamente geradas. Dependendo do mtodo de
deformao, as tcnicas de morphing podem ser classificadas em: mtodos baseados
em malha (mesh-based) e mtodos baseados em caracterstica (feature-based).
Nos mtodos baseados em malha [5], a deformao especificada por
duas malhas no-uniformes. As duas malhas tm o mesmo tamanho e cada ponto em
uma malha corresponde a um ponto na outra malha. A deformao usando malhas
pode no ser eficientemente controlada em imagens muito complexas, porque com o
aumento da malha, muitos pontos podem no corresponder s caractersticas nas
imagens.
Mtodos baseados em caracterstica solucionam o problema de
mtodos baseados em malha, especificando as caractersticas em uma imagem com
um conjunto de pontos ou segmentos de linha [2, 8]. A Figura 3.8 ilustra as
especificaes de deformao nos mtodos baseados em malha e mtodos baseados
em caracterstica com pontos ou linhas.

(a) Morphing baseado em malhas.


(b) Morphing baseado em pontos.


(c) Morphing baseado em linhas.
Fonte: GOMES, 1998.
FIGURA 3.8 Mtodos de morphing de imagens baseados em malha ou caracterstica.
CAPTULO 3 METAMORFOSE DE I MAGENS

36

Nos mtodos baseados em caracterstica [2], uma deformao gerada
pela correspondncia entre dois conjuntos de pontos ou linhas. Para cada ponto ou
linha no conjunto de caractersticas de uma imagem, o ponto ou linha
correspondente na outra imagem especifica a posio na imagem distorcida. Para
aumentar o controle de deformao em determinada rea, basta adicionar novos
pares de pontos ou linhas nas caractersticas das imagens.
3.3.1 Metamorfose de imagens baseada em pontos
Para obter a metamorfose de imagens, usando o mtodo de deformao baseada em
pontos, um conjunto de pares de pontos de correspondncia {(p
i
, q
i
) | p
i
, q
i
|R
2
,
i 1,,n} deve ser especificado para definir a correspondncia entre as
caractersticas das imagens, onde p
i
indica uma posio na imagem inicial que
corresponde a uma posio q
i
na imagem final.
As novas posies de todos os pixels nas imagens intermedirias devem
ser calculadas, tal que a posio dos pixels nos pontos de controle da imagem inicial
sejam progressivamente deslocados para a posio dos pontos de controle
correspondente na imagem final, e todos os outros pixels sejam movidos de uma
maneira consistente para que as relaes de vizinhana entre pixels permaneam
inalteradas.
Este problema de deformao geomtrica pode ser tratado como um
problema de interpolao de dados esparsos (scattered data interpolation) [26]. Existem
vrios mtodos de deformao baseada em mtodos de interpolao de dados
esparsos, tais como, mtodos baseados em triangulao, interpolao ponderada pela
distncia inversa e funes base radial, entre outros [25]. O mtodo de deformao
usando interpolao ponderada pela distncia inversa apresentado a seguir.



CAPTULO 3 METAMORFOSE DE I MAGENS

37

3.3.2 Deformao com interpolao ponderada pela distncia inversa
Um mtodo de interpolao ponderada pela distncia inversa, originalmente
proposto por Shepard [27], pode ser aplicado no problema de deformao de
imagem, conforme descrito a seguir.
Dado n pares (p
i
, q
i
) de pontos de controle, uma funo de mapeamento
f : |R
2
|R
2
deve ser encontrada, com f(p
i
) = q
i
e i = 1,,n. Esta funo de mapeamento
especifica a nova posio para todos os pixels na imagem deformada [8, 9].
Para cada par de pontos de controle, um interpolador local f
i
: |R
2
|R
2

com f
i
(p
i
) = q
i
, determinado. Interpoladores locais lineares so normalmente usados
para deslocar os pontos de controle com uma transformao linear. O deslocamento
dos pixels vizinhos controlado pela funo de mapeamento que depende da
distncia do pixel para cada um dos pontos de controle da imagem.
A funo de mapeamento f : |R
2
|R
2
uma mdia ponderada dos
interpoladores locais, com pesos w
i
dependendo da distncia do pixel aos pontos de
controle. Assim, a funo ponderada pela distncia inversa dada por

=
=
n
i
i i
y x f y x w y x f
1
), , ( ) , ( ) , ( com
i i i
f q p = ) ( , i = 1,...,n.
A funo peso w
i
: |R
2
|R depende da distncia inversa de um pixel
p(x, y) ao ponto de controle p
i
(xi, yi), normalizada pela soma das distncias inversas
de todos os pontos de controle, sendo definida por

=
=
n
j
j
i
i
y x
y x
y x w
1
) , (
) , (
) , (

, com
) , (
1
) , (
y x d
y x
i
i
= ,
onde d
i
(x, y) a distncia euclidiana entre o pixel p(x, y) e o ponto de controle p
i
(xi, yi).
A funo peso deve satisfazer as seguintes condies:
0 ) 1 (
i
w e ; 1 ) , (
1

=
=
n
i
i
y x w
1 ) , ( ) 2 ( =
i i i
y x w , , 0 ) , ( =
j j i
y x w com n j i j i ,..., 1 , , = .
CAPTULO 3 METAMORFOSE DE I MAGENS

38

Estas condies garantem que o pixel no ponto de controle p
i
seja
deslocado para a posio q
i
, uma vez que
i i i i
f f q p p = = ) ( ) ( , para todo i = 1,,n. Os
pixels mais distantes de um ponto de controle p
i
no so afetados pelo deslocamento
deste ponto, pois o peso w
i
correspondente pequeno.
A Figura 3.9 ilustra o processo de mapeamento de um pixel p(x, y) para
uma nova posio p(x, y). A posio (x, y) calculada por uma funo de
mapeamento definida por
2 2 1 1 0 0
) , ( f w f w f w y x f + + = , com
0 0 0
) ( q p = f ,
1 1 1
) ( q p = f ,
2 2 2
) ( q p = f , sendo que w
1
> w
0
> w
2
e w
0
+ w
1
+ w
2
= 1. Para cada pixel da imagem, uma
funo de mapeamento determinada com pesos correspondentes as distncias d
0
, d
1

e d
2
do pixel aos pontos de controle p
0
, p
1
e p
2
.




FIGURA 3.9 Deslocamento de um pixel com
interpolao ponderada pela distncia inversa.
3.3.3 Metamorfose com interpolao ponderada pela distncia inversa
No processo de metamorfose, uma deformao parcial das imagens inicial e final
realizada progressivamente para gerar pares de imagens deformadas. A imagem
inicial gradualmente deformada na imagem final e, simultaneamente, uma
deformao inversa deforma a imagem final na imagem inicial. Ao mesmo tempo,
uma interpolao de cor entre cada par de imagens deformadas gera as imagens
intermedirias entre as imagens inicial e final.
Para deformao parcial das imagens, pontos de controle
intermedirios entre os pontos de controle (p
i
, q
i
) so determinados para cada
imagem intermediria. Normalmente, os pontos de controle intermedirios so
d
1

d
2

d
0

p
0

p
1

p
2

p
q
0

q
1

q
2

p
CAPTULO 3 METAMORFOSE DE I MAGENS

39

calculados por um interpolador local linear, dado pela inclinao da reta entre os
pontos p
i
e q
i
, como mostra a Figura 3.10.





FIGURA 3.10 Interpolao linear para deformao progressiva das imagens.
Cada pixel na posio (x, y) na imagem inicial movido para uma nova
posio (xk, yk) = (x, y) + k.
1
) , (
N
y x f
na imagem intermediria k, sendo f(x, y) a funo
linear de interpolao ponderada pela distncia inversa, N 1 o nmero total de
imagens e k = 0,..,N. Um processo inverso usado para deformar a imagem final na
imagem inicial, com (xk, yk) = (x, y) (N k).
1
) , (
N
y x f
.
Finalmente, para completar o processo de metamorfose de imagens,
basta interpolar uma imagem entre cada par de imagens deformadas para gerar as
imagens intermedirias da seqncia de animao. O mtodo de metamorfose de
imagens tambm pode ser usado em aplicaes de reconstruo de volume, como
discutido no prximo captulo.


p
0
p
1

q
0
q
1

Imagem inicial
Imagem intermediria
Imagem final



4
Reconstruo de Volume


Em muitas aplicaes necessrio usar tcnicas de visualizao de volume para
visualizar a estrutura tridimensional de um objeto, a partir do conjunto de imagens
tomogrficas de sees transversais deste objeto. O processo bsico de visualizao
volumtrica compreende a fase de formao do volume e a fase de visualizao de
dados. A fase de formao do volume envolve, principalmente, a aquisio dos
dados e a reconstruo do volume.
Em aplicaes mdicas, uma pilha de imagens de sees transversais de
um objeto pode ser adquirida por Tomografia de Ressonncia Magntica (MRI),
Tomografia Computadorizada de Raios-X (CT) e outras tecnologias de imageamento.
Geralmente, a distncia entre as imagens tomogrficas (fatias do volume) muito
maior que a resoluo espacial dentro de cada fatia. Conseqentemente, a
visualizao tridimensional do objeto pode apresentar um resultado visual
insatisfatrio, devido falta de informao entre as fatias. Neste caso, necessrio
um mtodo de reconstruo de volume, onde tcnicas de interpolao de imagens
so usadas para gerar imagens intermedirias entre cada par de imagens originais.
Aps a reconstruo 3D, o volume de dados representado por um
array tridimensional de voxels, cujos valores de intensidade correspondem a medidas
CAPTULO 4 RECONSTRUO DE VOLUME

41

de densidade do objeto. Finalmente, tcnicas de visualizao de volume permitem
visualizar a estrutura tridimensional do objeto, sob qualquer ngulo de observao
no espao.


FIGURA 4.1 Etapas de reconstruo e visualizao volumtrica.
Neste captulo, so abordados alguns exemplos de reconstruo de
volume usando as tcnicas de interpolao de imagens cross-dissolve e morphing 2D.
Algumas das tcnicas mais usadas de visualizao 3D so apresentadas no prximo
captulo.

4.1 Reconstruo 3D de Imagens Tomogrficas de
Ressonncia Magntica
Nesta seo, imagens tomogrficas de ressonncia magntica de frutas, cedidas pela
Embrapa Instrumentao Agropecuria (So Carlos), so reconstrudas usando
mtodos de interpolao de imagens. Para reconstruir as imagens tomogrficas
atravs do mtodo de Interpolao 3D de Imagens usando a Teoria de Estimao
Bayesiana, seria necessrio aprimorar o mtodo de interpolao para gerar vrias
imagens intermedirias entre cada par de imagens. Assim, apenas o mtodo cross-
dissolve foi empregado para reconstruo de volume.
O processo de cross-dissolve aplicado em reconstruo 3D ilustrado na
Figura 4.2, onde um pixel da imagem inferior corresponde ao pixel na mesma posio
da imagem superior. Desta forma, a cor do pixel da imagem intermediria uma
combinao ou mistura das cores dos pixels correspondentes das imagens
tomogrficas.
Reconstruo
de Volume
Visualizao
de Volume
Aquisio de
Volume
CAPTULO 4 RECONSTRUO DE VOLUME

42

As imagens intermedirias In, com valores de n entre 0 e 1, so obtidas
por In = (1 - n)A + n.B, onde I0 = A a imagem inferior e I1 = B, a imagem superior.







FIGURA 4.2 Cross-dissolve para reconstruo de volume.
Trs imagens originais de sees transversais de um tomate, obtidas
por um tomgrafo de ressonncia magntica da Embrapa, so mostradas na Figura
4.3. As fatias do tomate tm 256x256 pixels com resoluo espacial de 1 mm
2
. A
distncia entre essas fatias de 3 mm.


FIGURA 4.3 Imagens originais de tomografia de ressonncia magntica de um tomate.
Para reconstruo 3D do tomate foram geradas cinco fatias entre cada
par de imagens originais usando o mtodo cross-dissolve
*
. Aps a reconstruo,
tcnicas de visualizao de volume permitem visualizar o resultado da reconstruo
do tomate.

FIGURA 4.4 Visualizao 3D do tomate aps reconstruo de volume.

*
Ver as imagens intermedirias no Apndice E.
I
n
= (1-n)A + n.B
CAPTULO 4 RECONSTRUO DE VOLUME

43

Da mesma forma, um conjunto de 22 imagens de tomografia de
ressonncia magntica de uma manga foi reconstrudo usando cross-dissolve entre
cada par de imagens originais.



FIGURA 4.5 Algumas imagens originais de ressonncia magntica da manga.
O resultado da reconstruo 3D da manga mostrado na Figura 4.6.
Entre cada par de imagens foram geradas oito fatias intermedirias.

FIGURA 4.6 Visualizao aps reconstruo volumtrica de imagens tomogrficas da manga.
Nos dois casos acima, a reconstruo 3D usando um mtodo simples de
interpolao de cor, apresenta um resultado visual satisfatrio, porque no h uma
mudana significativa de forma entre as imagens originais.




Ver as imagens originais da manga no Apndice E.


CAPTULO 4 RECONSTRUO DE VOLUME

44

4.2 Reconstruo 3D de Imagens Tomogrficas de
Raios-X do Arco Coronal
O resultado da reconstruo 3D de um arco coronal da atmosfera solar usando o
mtodo cross-dissolve mostrado na Figura 4.7. Foram geradas 70 imagens
intermedirias entre as imagens tomogrficas de raios-X da base e topo do arco.

A
estrutura tridimensional em forma de arco no eficientemente reconstruda por
mtodos de interpolao de cor, devido ao nmero insuficiente de imagens
disponveis para reconstruo 3D e a necessidade de uma mudana de forma entre as
imagens originais.

FIGURA 4.7 Reconstruo 3D do arco coronal usando cross-dissolve.
Uma alternativa a reconstruo 3D do arco coronal atravs de uma
tcnica de metamorfose baseada em pontos, usando o mtodo de interpolao
ponderada pela distncia inversa. Pares de pontos de controle devem ser
especificados nas imagens da base e topo para definir as deformaes das imagens
(Figura 4.8). Cada par de pontos de controle deve especificar caractersticas
correspondentes nas imagens da base e topo.

FIGURA 4.8 Especificao de pontos de controle nas imagens
tomogrficas do arco coronal para deformao das imagens da
base e topo.

Ver algumas imagens intermedirias no Apndice E.


CAPTULO 4 RECONSTRUO DE VOLUME

45

A Figura 4.9 mostra o esquema do mtodo de metamorfose tradicional,
que realiza uma deformao linear das imagens da base e topo. Pontos de controle
intermedirios so criados pela interpolao linear entre os pares de pontos de
controle correspondentes. Os pixels nos pontos de controle da imagem da base (topo)
so deslocados para as posies dos pontos de controle na imagem intermediria n,
gerando a imagem deformada da base (topo). Os pixels mais distantes dos pontos de
controle na imagem da base (topo) sofrem um deslocamento menor, ponderado pelas
distncias inversas do pixel aos pontos de controle. Desta forma, um par de imagens
deformadas da base e topo gerado para cada imagem intermediria.





FIGURA 4.9 Metamorfose com deformao linear.
Cada imagem intermediria, In, determinada pela interpolao de cor
das imagens deformadas da base An e topo Bn. Desta forma, a cor do pixel no ponto
de controle da imagem intermediria n uma mistura dos pixels que esto nos pontos
de controle correspondentes nas imagens da base e topo. O resultado da
reconstruo 3D do loop mostrado na Figura 4.10.



FIGURA 4.10 Reconstruo 3D do arco coronal usando metamorfose linear.

Ver algumas imagens intermedirias no Apndice E.


CAPTULO 4 RECONSTRUO DE VOLUME

46

Um mtodo de metamorfose, adaptado para reconstruo 3D das
imagens do loop, foi implementado usando uma funo de mapeamento x
2
(e x
4
) para
controlar a deformao das imagens. O processo de deformao e interpolao de cor
semelhante ao caso linear. Os resultados nas Figuras 4.12(a) e 4.12(b), embora sejam
mais realsticos que a deformao linear, no representam todas as formas possveis
de arcos coronais.







FIGURA 4.11 Metamorfose com deformao quadrtica.



(a) x
2
(b) x
4

FIGURA 4.12 Reconstruo 3D do arco coronal usando metamorfose quadrtica.

Para resolver este problema necessrio especificar uma curva
polinomial mais complexa que aproxime o arco magntico e desenvolver um mtodo
de metamorfose controlado por esta curva.










FIGURA 4.13 Metamorfose com curva polinomial.
CAPTULO 4 RECONSTRUO DE VOLUME

47

Diante desta necessidade, foi desenvolvido um mtodo de reconstruo
3D de arcos coronais, baseado em metamorfose de imagens, controlado por uma
curva Bezier. Neste mtodo, a Interpolao 3D de Imagens usando a Teoria de Estimao
Bayesiana usada para estimar a intensidade dos pixels de cada imagem
intermediria a partir dos n pares de imagens deformadas da base e topo do loop.
Este mtodo de reconstruo 3D de arcos coronais, desenvolvido no trabalho de
mestrado, ser descrito no Captulo 7.


No prximo captulo so abordados os principais conceitos de visualizao
volumtrica usados para visualizao das imagens tomogrficas de ressonncia
magntica de frutas e de imagens tomogrficas de raios-X do arco coronal.




5
Visualizao de Volume


Visualizao de volume um conjunto de tcnicas que permitem visualizar a estrutura
tridimensional de um objeto a partir de um conjunto de dados de volume [12]. Em
aplicaes mdicas, os dados volumtricos so geralmente adquiridos por
tomgrafos que geram uma pilha de imagens. O volume obtido representado por
um array tridimensional de voxels, onde um voxel o menor elemento de dados do
volume, correspondente ao conceito de pixel na imagem. Em tomografia
computadorizada, os voxels representam coeficientes de absoro de raios-X, cujos
valores correspondem densidade do material dentro do objeto como ar, msculo,
osso, etc.


FIGURA 5.1 Representao do volume.
CAPTULO 5 VI SUALI ZAO DE VOLUME

49

Os algoritmos de visualizao volumtrica podem ser classificados em:
algoritmos de renderizao de superfcie e algoritmos de renderizao de volume. Nos
algoritmos de renderizao de superfcie, os dados volumtricos so convertidos
para uma representao geomtrica de superfcie. Neste caso, mtodos tradicionais
de renderizao de polgonos so usados para visualizar as superfcies do volume.
Nos algoritmos de renderizao de volume, a visualizao realizada a partir dos
dados volumtricos, sem nenhuma representao intermediria. Para visualizar
gases e fluidos que no apresentam uma superfcie bem definida, a renderizao de
volume mais apropriada.
5.1 Renderizao de Superfcie
Um algoritmo de renderizao de superfcie, Marching Cubes [10], permite extrair
isosuperfcies de densidade constante a partir de um conjunto de dados de volume.
Este algoritmo se baseia em dois passos bsicos: gerao de uma malha de polgonos
para aproximar a superfcie correspondente a um isovalor (trhesholding); e clculo das
normais dos polgonos. Aps a definio da isosuperfcie, mtodos tradicionais de
renderizao de polgonos so utilizados para visualizar o volume. Uma
desvantagem dos mtodos de renderizao de superfcies que somente a
representao geomtrica intermediria pode ser visualizada, dificultando a
compreenso de detalhes do volume.

(a) Trhesholding igual a 80. (b) Trhesholding igual a 200.

FIGURA 5.2 Visualizao do mesmo volume de dados com diferentes isosuperfcies.
CAPTULO 5 VI SUALI ZAO DE VOLUME

50

5.2 Renderizao de Volume
Nos algoritmos de renderizao de volume [3, 12], os dados so visualizados sem
nenhuma representao intermediria. As fases principais dos algoritmos de
renderizao de volume so: classificao de dados e projeo do volume. A fase de
classificao um processo que permite selecionar a estrutura do volume a ser
visualizada. A fase de projeo do volume envolve o lanamento de raios da posio
do observador em direo ao volume e clculo de composio dos voxels
interceptados pelo raio, para determinar a cor dos pixels no plano de visualizao.


FIGURA 5.3 Projeo do volume no plano de visualizao.
No algoritmo mais simples de renderizao de volume, Maximum
Intensity Projection (MIP), o voxel com a maior intensidade ao longo do raio
projetado no plano de visualizao. No algoritmo Ray Casting, as contribuies de cor
e opacidade dos voxels interceptados pelo raio so acumuladas para determinar a cor
final do pixel.
5.2.1 Classificao dos dados
A classificao um processo interativo que permite selecionar a estrutura
tridimensional do volume a ser visualizado. Na fase de classificao feito um
mapeamento dos valores de intensidade dos voxels em valores de cor e opacidade. A
cor permite diferenciar o material representado pelo voxel, enquanto a opacidade
permite visualizar estruturas internas do volume. Os valores de opacidade variam
Volume
Olho
Plano de Visualizao
Raio
CAPTULO 5 VI SUALI ZAO DE VOLUME

51

entre 0 e 1, representando voxels totalmente transparentes a voxels totalmente opacos.
A cor e opacidade dos voxels so determinadas atravs de funes de transferncia,
evitando o armazenamento da informao de cor e opacidade para cada voxel do
volume.
5.2.1.1 Funo de transferncia
A funo de transferncia de opacidade mapeia os valores de intensidade dos voxels
em valores de opacidade. Uma funo de transferncia de cor usando o modelo RGB
deve ser definida para cada componente de cor R, G e B. A Figura 5.4 mostra
exemplos de funes de transferncia de cor e opacidade. O eixo horizontal
representa os valores possveis de intensidade do voxel. O eixo vertical representa os
valores de opacidade, entre 0 e 1, ou os valores de cor (R, G ou B), entre 0 e 255.
Para acelerar o processamento, as funes de transferncia so
implementadas com tabelas de cor e opacidade. Desta forma, o valor de intensidade
do voxel usado como ndice das tabelas, para determinar a cor e a opacidade
correspondente do voxel.





FIGURA 5.4 Funes de transferncia e tabelas de opacidade e cor (R, G, B).
As funes de transferncia so especficas para cada aplicao, pois
dependem dos valores de intensidade dos voxels, do material representado por estes
voxels, e das estruturas que se deseja visualizar. A Figura 5.5 representa o mesmo
Intensidade de voxel Intensidade de voxel
Opacidade R, G, ou B
Funo de Transferncia
de Opacidade
Funes de Transferncia
de Cor (R,G,B)
Tabela de Opacidade Tabela de Cor
CAPTULO 5 VI SUALI ZAO DE VOLUME

52

conjunto de dados de volume visualizado com diferentes funes de transferncia de
opacidade.

FIGURA 5.5 Visualizao de volume com diferentes funes de transferncia de opacidade.
5.2.1.2 Histograma do volume
No existe uma regra geral para o projeto de funes de transferncia. No entanto, o
histograma do volume uma ferramenta que auxilia a especificao interativa da
funo de transferncia. O histograma do volume representa o nmero de vezes que
ocorrem voxels de cada um dos valores possveis de intensidade. A Figura 5.6 mostra
um exemplo de histograma, com os valores de intensidade de voxels representados
no eixo horizontal e o nmero de ocorrncia, ou freqncia, na vertical. Assim, os
valores dos voxels que representam a estrutura que se deseja visualizar podem ser
determinados, facilitando o projeto da funo de transferncia.

FIGURA 5.6 Histograma do volume e funo de transferncia de opacidade.
Aps a classificao, o volume pode ser projetado no plano de
visualizao usando um algoritmo de composio de voxels.
Freqncia
Funo de
Transferncia
Intensidade
de voxel
CAPTULO 5 VI SUALI ZAO DE VOLUME

53

5.2.2 Projeo do volume
Nos mtodos de renderizao de volume, raios so lanados de cada pixel da imagem
em direo ao volume, e os voxels interceptados pelo raio so projetados no plano de
visualizao.


FIGURA 5.7 Projeo do volume no plano de visualizao.
As etapas principais da projeo do volume so: lanamento de raios,
determinao dos raios que interceptam o volume, determinao dos voxels
interceptados pelo raio e composio dos voxels ao longo do raio. Os raios que
realmente interceptam o volume so lanados e um algoritmo de composio dos
voxels interceptados pelo raio usado para determinar a cor final do pixel. Vrios
mtodos de renderizao foram propostos, com diferentes algoritmos de composio
de voxels. A seguir, so apresentados dois mtodos.
5.2.2.1 Algoritmo Maximum Intensity Projection
Maximum Intensity Projection (MIP) [12,16] um algoritmo de renderizao de
volume usado para visualizar estruturas de alta intensidade. Em aplicaes mdicas,
MIP usado para visualizar a estrutura de vasos sanguneos (angiografia). Para cada
raio lanado atravs do volume, o voxel com maior valor de intensidade projetado
no plano de visualizao.

FIGURA 5.8 Renderizao de volume usando MIP.
Plano de
Visualizao Volume
Raio
Pixel
para cada pixel
{ lana um raio }
CAPTULO 5 VI SUALI ZAO DE VOLUME

54

5.2.2.2 Algoritmo Ray-Casting
O algoritmo de renderizao de volume ray casting foi originalmente proposto por
Levoy [10,11] em 1988. Posteriormente, surgiram vrias adaptaes deste algoritmo.
A Figura 5.9 mostra um volume visualizado com o algoritmo ray-casting.



FIGURA 5.9 Renderizao de volume usando ray-casting.
No algoritmo ray casting, todas as contribuies de cor
i
C e opacidade
i
, de cada voxel i interceptado por um raio, so acumuladas para determinar a cor
C final do pixel. A cor
out
C e a opacidade
out
de um raio aps atravessar um voxel i
so calculadas em funo da cor
in
C e da opacidade
in
, antes de atravessar o voxel e
da cor
i
C e da opacidade
i
, do prprio voxel.
in
C
out
C
in

out


i
C
i

FIGURA 5.10 Cor e opacidade aps atravessar um voxel.
O clculo de cor e opacidade de um raio aps atravessar um voxel i
pode ser expresso por
] 1 .[

in i in out
C C C + =
] 1 .[
in i in out
+ =
onde
in in in
C C .

=
out out out
C C .

=
i i i
C C =


CAPTULO 5 VI SUALI ZAO DE VOLUME

55

Depois de calcular todas as N contribuies dos voxels, com k = 1,..., N, a
cor final C do pixel dada por


A equao de composio pode ser expressa por


=

=
|
|
.
|

\
|
=

+
+ =
N
k
k
i
i k C
N N C
C
C C
1
1
1
)] ( 1 [ ). (
)] 1 ( 1 .[ )]. 1 ( 1 ).[ (
)] 1 ( 1 ).[ 2 (
) 1 (

L
L

O custo computacional do algoritmo ray casting alto devido ao tempo
de processamento do clculo de composio de todos os voxels do volume. O tempo
de processamento cresce linearmente com o aumento do tamanho do conjunto de
dados. Alm disso, qualquer modificao no posicionamento ou orientao do
volume exige que todos os clculos de projeo do volume sejam novamente
processados. Vrias otimizaes do algoritmo ray casting e algoritmos paralelos
foram propostos para reduzir o tempo de renderizao.

out
out
C
C

=



6
Sistemas Paralelos


Neste captulo, so apresentados os conceitos bsicos de sistemas paralelos, alm de
uma metodologia para desenvolvimento de programas paralelos e anlise de
desempenho, empregados para desenvolver o programa paralelo de reconstruo 3D
de arcos coronais.

6.1 Arquitetura de Computadores Paralelos
Um computador paralelo composto de vrios processadores que operam
simultaneamente. Os computadores paralelos podem ser agrupados de acordo com o
fluxo de dados em duas categorias bsicas: SIMD (Single Instruction Multiple Data) e
MIMD (Multiple Instruction Multiple Data) [4]. Nas mquinas SIMD, todos os
processadores executam a mesma instruo em diferentes conjuntos de dados
simultaneamente, enquanto nas mquinas MIMD, cada processador executa um
programa independente operando sobre diferentes conjuntos de dados. As mquinas
MIMD so classificadas de acordo com a organizao da memria em mquinas de
memria compartilhada ou memria distribuda. A Figura 6.1 mostra a arquitetura geral
dos modelos de mquina MIMD de memria compartilhada e distribuda.
CAPTULO 6 SI STEMAS PARALELOS

57


(a) Memria Compartilhada (b) Memria Distribuda
FIGURA 6.1 Modelos de mquina MIMD de memria compartilhada e memria distribuda.
No modelo de memria compartilhada, todos os processadores tm
acesso a uma memria compartilhada global. Por outro lado, no modelo de memria
distribuda, cada processador possui uma memria local, podendo acessar
diretamente somente os dados armazenados em sua prpria memria local. O
modelo de mquina MIMD com memria distribuda tambm chamado de
multiprocessador.
6.2 Conceitos de Processamento Paralelo
Em sistemas paralelos, uma aplicao pode ser dividida em diversas tarefas, ou seja,
mdulos de programa seqencial que executam uma funo ou um conjunto de
funes bem definidas. Cada tarefa uma unidade de execuo independente que
pode interagir com outras tarefas. Em sistemas com um nico processador, um
conceito de multitarefa empregado para distribuir o tempo do processador entre
vrias tarefas concorrentes. A multitarefa usa o conceito de concorrncia para simular
a execuo simultnea das tarefas, uma vez que um processador pode executar
somente uma tarefa seqencial de cada vez. Em sistemas multiprocessadores, o
conceito de multiprocessamento ou paralelismo empregado para executar as tarefas
simultaneamente, uma vez que elas so efetivamente executadas em paralelo por
mais de um processador. Neste caso, a multitarefa tambm usada para execuo
CAPTULO 6 SI STEMAS PARALELOS

58

concorrente das tarefas que compartilham um determinado processador e os
recursos do sistema.
Nos sistemas paralelos de tempo real, o tempo de execuo das tarefas
deve satisfazer limites rgidos definidos de acordo com os requisitos de um problema
especfico. Neste caso, um Sistema Operacional de Tempo Real (RTOS) necessrio para
gerenciar os recursos do sistema, controlar a execuo concorrente e simultnea das
tarefas e assegurar que as tarefas crticas sejam executadas dentro do limite de
tempo. Os SOs modernos normalmente so baseados em uma arquitetura formada
por um kernel (ncleo) e servios de gerenciamento dos recursos do sistema, tais
como, memria, arquivos e dispositivos de I/O. O kernel de tempo real responsvel
principalmente pela execuo das tarefas e oferece mecanismos de
sincronizao/comunicao de tarefas atravs de primitivas de servio.

FIGURA 6.2 Arquitetura de um sistema operacional de tempo real.
Uma tarefa s pode ser executada se os recursos necessrios
processador, memria e dispositivos estiverem disponveis. Como vrias tarefas
podem estar concorrendo por um mesmo recurso, necessrio um critrio para
determinar qual a ordem de execuo das tarefas para que cada uma obtenha acesso
ao processador. O critrio mais utilizado consiste na associao de uma prioridade
para cada tarefa indicando a sua importncia em relao a outras tarefas no sistema.
O escalonador responsvel por decidir qual tarefa deve ser processada pelo
processador. Num algoritmo de escalonamento preemptivo baseado em prioridade, a
tarefa de prioridade mais alta selecionada para ser executada no processador.
Quando uma tarefa de prioridade mais alta est pronta para ser processada, a tarefa
de prioridade mais baixa em execuo suspensa pelo escalonador e o processador ,
sistema de
arquivos
gerncia de
memria
escalona-
mento
multiplexao de CPU, tratamento de
interrupes, device drivers, primitivas de
sincronizao, comunicao entre processos.
servios
do sistema
kernel
CAPTULO 6 SI STEMAS PARALELOS

59

ento, cedido para a tarefa de prioridade mais alta. As tarefas tambm so suspensas
quando esperam a ocorrncia de um evento ou um recurso se tornar disponvel.
Desta forma, as tarefas podem passar por vrios estados durante a execuo do
programa. Os principais estados de tarefas so:
Estado de Execuo: uma tarefa se encontra no estado de execuo quando
est sendo executada pelo processador. Em sistemas multiprocessadores,
vrias tarefas podem estar sendo executadas ao mesmo tempo.
Estado de Pronto: indica que a tarefa aguarda uma oportunidade para ser
executada pelo processador. O escalonador interrompe uma tarefa em
execuo, colocando-a no estado de pronto, para que o processador execute
outra tarefa de prioridade mais alta no estado de pronto. Uma lista de tarefas
no estado de pronto mantida em ordem de prioridade para que o
processador execute primeiro as tarefas mais prioritrias.
Estado Bloqueado: quando uma tarefa necessita de um recurso do sistema que
no se encontra disponvel, ela deve esperar a liberao do recurso
permanecendo no estado bloqueado. Quando o recurso liberado, a tarefa
colocada no estado de pronto e aguarda o escalonador selecion-la para entrar
em execuo.
Estado de Espera: uma tarefa se encontra no estado de espera quando est
aguardando um evento para poder prosseguir. Por exemplo, quando uma
tarefa em execuo comea a realizar uma operao de entrada/sada, ela
automaticamente entra no estado de espera liberando o processador para
executar outras tarefas. Ao terminar a operao, ela colocada no estado de
pronto e deve aguardar sua vez de ser executada. Assim, um processo em
estado de espera aguarda pela concluso de uma operao em um recurso que
j est garantido.
CAPTULO 6 SI STEMAS PARALELOS

60

As transies entre os estados de uma tarefa podem ser representadas
em um grafo: execuo/pronto, pronto/execuo, execuo/bloqueado,
bloqueado/pronto, execuo/espera, espera/pronto.





FIGURA 6.3 Grafo de transies entre estados de tarefas.

6.3 Metodologia de Desenvolvimento de Programas
Paralelos
A programao paralela introduz uma complexidade adicional ao modelo de
programao seqencial, devido necessidade de gerenciamento de recursos
compartilhados, sincronizao e comunicao entre tarefas [4]. Para garantir uma
programao eficiente necessria uma metodologia de desenvolvimento de
programas que permita satisfazer os requisitos de um programa paralelo. Os
requisitos fundamentais de projeto de um programa paralelo so: paralelismo,
escalabilidade e localidade.
No programa paralelo, a aplicao dividida em vrias tarefas que so
executadas simultaneamente. Assim, as possibilidades de execuo simultnea
devem ser identificadas na fase de projeto do programa paralelo. No entanto, como
as tarefas interagem atravs de mecanismos de comunicao, o programa deve
obedecer aos princpios de localidade, isto , alta taxa de acesso memria local
comparado com o acesso a dados remotos, diminuindo assim os custos de
comunicao. Alm disso, a programao paralela exige mecanismos de
sincronizao de tarefas para garantir o acesso aos recursos compartilhados. Outra
questo que deve ser considerada na fase de projeto o desenvolvimento de
Execuo
Pronto Espera
Bloqueado
CAPTULO 6 SI STEMAS PARALELOS

61

programas escalveis. Desta forma, possvel aumentar o nmero de processadores
do sistema, sem perder eficincia e desempenho na execuo do programa paralelo.
Finalmente, os requisitos de abstrao e modularidade so to importantes
no modelo de programao paralela quanto paralelismo, escalabilidade e localidade.
Na prxima seo, ser apresentado um modelo de programao paralela baseado
em tarefas e canais, que simplifica o desenvolvimento de programas modulares e
escalveis. A abstrao tarefa/canal apropriada para desenvolvimento de
programas paralelos em sistemas multiprocessadores.
6.3.1 Modelo de programao paralela
No modelo de programao baseado em tarefas e canais, um programa paralelo
consiste de uma ou mais tarefas que executam concorrentemente e simultaneamente
nos diversos processadores [4]. Alm de acessar sua prpria memria local, uma
tarefa pode interagir com outras tarefas atravs de servios de sincronizao e
comunicao. Neste modelo de programao, a comunicao entre as tarefas
realizada atravs de canais.

Fonte: FOSTER, 1995.
FIGURA 6.4 Modelo de programao paralela task/channel. Um
programa consiste de um conjunto de tarefas (representadas por
crculos) conectadas por canais (setas).
Um canal uma fila de mensagens na qual uma tarefa pode enviar
mensagens para outra tarefa, de forma sncrona ou assncrona. Na comunicao
sncrona, uma tarefa envia uma mensagem e fica esperando, at que a tarefa
receptora receba a mensagem; ou, uma tarefa receptora permanece esperando, at
que uma tarefa envie alguma mensagem no canal. A comunicao sncrona introduz
CAPTULO 6 SI STEMAS PARALELOS

62

o conceito de dependncia de dados, ou seja, a computao em uma tarefa requer dados
de outra tarefa para continuar a execuo.

Fonte: FOSTER, 1995.
FIGURA 6.5 Comunicao e sincronizao de tarefas usando
canal: uma tarefa emissora envia dados para uma tarefa
receptora, que pode ficar em espera at que uma mensagem
chegue pelo canal.
Um mecanismo de sincronizao entre tarefas tambm pode ser
implementado atravs de semforos. Uma tarefa fica parada esperando um semforo
ser sinalizado, at que outra tarefa sinalize o semforo. Por outro lado, uma tarefa
pode sinalizar um semforo e ficar esperando, at que outra tarefa verifique o sinal
do semforo.
Algumas propriedades do modelo de programao tarefa/canal so:
desempenho, modularidade e independncia de mapeamento.
Desempenho: Se duas tarefas que compartilham um canal so mapeadas para
processadores diferentes, a conexo do canal implementada como uma
comunicao interprocessador; caso contrrio, algum mecanismo mais
eficiente de comunicao intraprocessador pode ser usado.
Modularidade: No projeto modular, vrios mdulos independentes so
combinados para obter um programa completo, reduzindo a complexidade do
programa e facilitando o reuso de cdigo. Uma tarefa um modulo
independente que encapsula os dados e o cdigo que opera nestes dados.
Interaes entre mdulos so restritos a interfaces bem definidas, isto , canais,
por onde as tarefas enviam e recebem mensagens. Assim, a implementao do
mdulo pode ser alterada sem modificar outros mdulos do programa.
CAPTULO 6 SI STEMAS PARALELOS

63

Independncia de Mapeamento: Algoritmos devem ser projetados com um
nmero maior de tarefas do que processadores. Esta uma forma de adquirir
escalabilidade: quando o nmero de processadores aumenta, o nmero de
tarefas por processador reduzido, mas o algoritmo no modificado. Uma
vez que tarefas interagem usando o mesmo mecanismo de comunicao
(canal), programas no dependem de onde as tarefas executam e podem ser
implementadas sem levar em considerao o nmero de processadores.
6.3.2 Projeto de algoritmos paralelos
Nesta seo, mostrado como a especificao de um problema traduzida num
algoritmo que exibe paralelismo, escalabilidade e localidade. Uma metodologia
PCAM estrutura o processo de projeto em quatro etapas distintas: particionamento,
comunicao, agrupamento e mapeamento [4]. Nas duas primeiras etapas, a nfase o
paralelismo e a escalabilidade. Na terceira e quarta etapas, a ateno dirigida para a
localidade e outros temas relacionados com a eficincia. As quatro etapas so
ilustradas na Figura 6.6 e resumidas como segue:
Particionamento: O processamento e os dados so decompostos em pequenas
tarefas. Os aspectos prticos so ignorados, como por exemplo, o nmero de
processadores. A ateno dirigida para a identificao de oportunidades de
execuo simultnea.
Comunicao: Os requisitos de comunicao necessrios para coordenar a
execuo das tarefas so determinados e as estruturas de comunicao so
definidas.
Agrupamento: Vrias tarefas pequenas executando em paralelo (gro-fino)
aumentam o custo de comunicao. Assim, as estruturas de comunicao e as
tarefas, definidas nas duas primeiras etapas, so avaliadas e, se for necessrio,
as tarefas so combinadas em tarefas maiores (gro-grosso) para diminuir o
custo de comunicao e aumentar o desempenho.
CAPTULO 6 SI STEMAS PARALELOS

64

Mapeamento: Cada tarefa atribuda a um processador de forma a tentar
satisfazer o objetivo de balanceamento de carga e minimizao dos custos de
comunicao. O balanceamento possibilita a distribuio da carga de
processamento entre os diversos processadores para maximizao da
utilizao dos processadores e aumento do desempenho do sistema.

Fonte: FOSTER, 1995.
FIGURA 6.6 Metodologia de projeto de programas paralelos PCAM.
A partir da especificao de um problema, a metodologia de
desenvolvimento de programas paralelos empregada com as etapas de
particionamento, comunicao, agrupamento e mapeamento, que devem ser
constantemente revisadas e aperfeioadas.





CAPTULO 6 SI STEMAS PARALELOS

65

6.4 Anlise de Programas Paralelos
Uma aplicao paralela no pode ter um desempenho pior do que a mesma aplicao
executada em um nico processador. Assim, o objetivo na programao paralela
otimizar as funes de custo especficas do problema, como tempo de execuo,
requisitos de memria, custos de comunicao, etc. Na anlise do projeto,
necessrio considerar no apenas o rendimento, como tambm a escalabilidade do
algoritmo paralelo.

6.4.1 Anlise de rendimento
O rendimento pode ser usado para comparar a eficincia de diferentes algoritmos,
para avaliar a escalabilidade e para identificar congestionamentos e outras
ineficincias. As mtricas para medir o rendimento podem ser to diversas, como: o
tempo de execuo, a eficincia e o througput (nmero de tarefas executadas em um
determinado intervalo de tempo). A seguir sero apresentados apenas dois aspectos
do rendimento de algoritmos: o tempo de execuo e a eficincia.
6.4.1.1 Tempo de execuo
Os modelos de rendimento especificam uma mtrica, como o tempo de execuo T,
em funo do tamanho do problema N, do nmero de processadores P, do nmero
de tarefas e outras caractersticas.
T = f(N, P, ...)
O tempo de execuo de um programa paralelo o tempo que decorre
desde que o primeiro processador inicia a execuo do problema, at que o ltimo
processador complete a execuo. Durante a execuo, cada processador est em
computao, em comunicao ou ocioso, como ilustra a Figura 6.7.
comp
T ,
comm
T ,
idle
T
so os tempos de computao, comunicao e cio, respectivamente.
CAPTULO 6 SI STEMAS PARALELOS

66

Tempo de Computao: O tempo de computao de um algoritmo (
comp
T ) o
tempo gasto ao efetuar processamento sem contar a comunicao e ociosidade.
O tempo de computao depende, normalmente, do tamanho do problema e
das caractersticas dos processadores.
Tempo de Comunicao: O tempo de comunicao de um algoritmo (
comm
T )
o tempo que as tarefas gastam enviando e recebendo mensagens. O tempo de
comunicao pode diferir entre comunicaes interprocessador e
intraprocessador. Na comunicao interprocessador, as duas tarefas em
comunicao esto localizadas em diferentes processadores. Na comunicao
intraprocessador, as duas tarefas esto no mesmo processador.
Tempo de cio: O tempo de cio (
idle
T ) mais difcil de determinar, uma vez
que depende da ordem de execuo das operaes. Um processador pode
estar ocioso devido falta de processamento ou falta de dados para prosseguir
o processamento.

FIGURA 6.7 Representao de execuo de um programa paralelo em quatro
processadores. Cada processador gasta o seu tempo em computao, em
comunicando ou espera. T o tempo total de execuo.

O tempo total de execuo pode ser definido como a soma dos tempos
de computao, de comunicao e de cio de um processador j arbitrrio,
j
idle
j
comm
j
comp
T T T T + + = (6.1)
CAPTULO 6 SI STEMAS PARALELOS

67

ou, como a soma desses termos em todos os processadores dividida pelo nmero de
processadores,
) (
1
idle comm comp
T T T
P
T + + =

) (
1
1
0
1
0
1
0


=

=
+ + =
P
i
i
idle
P
i
i
comm
P
i
i
comp
T T T
P
. (6.2)
6.4.1.2 Eficincia e Ganho
O tempo de execuo nem sempre a mtrica mais conveniente de avaliao do
rendimento de um algoritmo paralelo. Como o tempo de execuo tende a variar
com o tamanho do problema, os tempos de execuo tm de ser normalizados para
comparao do rendimento do algoritmo para diferentes tamanhos de um problema.
A eficincia - a frao de tempo que os processadores gastam fazendo trabalho til
uma mtrica que pode fornecer uma medida mais conveniente de um algoritmo
paralelo, independente do tamanho do problema. A eficincia E do programa em P
processadores definida como
P
S
E
P
P
= , (6.3)
onde SP se refere ao ganho (speedup) medido em P processadores. O ganho ou
speedup o fator de reduo do tempo de execuo do programa em P processadores,
dado por
P
P
T
T
S
1
=
, (6.4)
onde T1 o tempo de execuo do programa num sistema com um nico processador
e TP o tempo de execuo em P processadores. A Figura 6.8 mostra os grficos de
eficincia e ganho por nmero de processadores. A eficincia geralmente diminui
com o aumento do nmero de processadores. Um ganho linear e eficincia constante
seriam ideais, mas na prtica, isto no possvel devido ao aumento de overhead e
gargalos de comunicao.
CAPTULO 6 SI STEMAS PARALELOS

68

0
0,2
0,4
0,6
0,8
1
14 8 16 32 48 64
Nmero de Processadores
E
f
i
c
i

n
c
i
a

0
10
20
30
40
50
60
1 4 8 16 32 48 64
Nmero de Processadores
G
a
n
h
o

(
S
p
e
e
d
u
p
)

FIGURA 6.8 Grficos de eficincia x nmero de processadores e ganho
(speedup) x nmero de processadores.
6.4.2 Anlise de escalabilidade
As mtricas de rendimento so teis para anlise de escalabilidade de um algoritmo
paralelo. A anlise de escalabilidade avalia quo efetivamente pode-se usar um
nmero crescente de processadores. Uma forma de quantificar a escalabilidade
determinar como o tempo de execuo T e a eficincia E variam com o aumento do
nmero de processadores P, para um problema fixo em tamanho e parmetros da
mquina. A eficincia E, em geral, diminui monotonamente com o aumento do
nmero de processadores. A anlise de escalabilidade permite determinar o nmero
mximo de processadores que podem ser usados quando se pretende manter a
eficincia em um determinado valor. No entanto, para a anlise de escalabilidade
necessrio considerar tanto E como T, pois o tempo de execuo pode crescer com o
aumento do nmero de processadores. Nestes casos, pode no ser produtivo usar
mais que um nmero mximo de processadores, para um determinado tamanho de
problema e parmetros de mquina.

Todos os conceitos necessrios para desenvolvimento do trabalho de mestrado, como
interpolao de imagens, metamorfose de imagens, reconstruo e visualizao 3D,
alm de sistemas paralelos, foram abordados nos captulos anteriores. Nos prximos
captulos sero apresentados o mtodo e o programa paralelo de reconstruo 3D
desenvolvido neste trabalho.



7
Reconstruo 3D de Arcos Coronais


O objetivo do trabalho de mestrado a reconstruo da estrutura 3D de um arco
coronal a partir de duas imagens tomogrficas de raios-X observadas pelo satlite
japons Yohkoh (Figura 7.1). Para reconstruir a estrutura magntica tridimensional
necessrio gerar imagens intermedirias entre as imagens da base e topo do loop. A
forma das sees transversais do loop determinada pela distribuio espacial da
energia liberada e pelo transporte desta energia dentro do loop. Neste captulo
apresentado o mtodo de reconstruo 3D baseado em metamorfose de imagens,
onde a deformao das imagens da base e topo controlada por uma curva Bezier
*

em forma de arco.


(a) Base do loop. (b) Topo do loop.
FIGURA 7.1 Imagens de raios-X do loop.

*
Ver Apndice C: Curva Bezier.
CAPTULO 7 RECONSTRUO 3D DE LOOPS DA COROA SOLAR

70

7.1 Definio da Estrutura 3D do Loop com Curva Bezier
A estrutura tridimensional do loop aproximada por uma curva Bezier 3D, definida
por quatro pontos de controle. Na Figura 7.2, os pontos P0 e P3 correspondem
aproximadamente aos footpoints do loop, observados na imagem da base. Os pontos P1
e P2 so ajustados para definir a forma do arco magntico.
A funo polinomial paramtrica, P(t), de uma curva Bezier cbica [20]
expressa por
P(t) = (1 t)
3
P0 + 3t(1 t)
2
P1 + 3t
2
(1 t) P2 + t
3
P3, (7.1)
onde t o parmetro normalizado da curva, com valores variando entre 0 e 1; P0, P1,
P2 e P3 so os pontos de controle com coordenadas cartesianas x, y e z.

FIGURA 7.2 Curva Bezier 3D para aproximao da estrutura tridimensional do loop.
A funo da curva Bezier pode ser expressa na forma de uma matriz,
como
| |
(
(
(
(

(
(
(
(



=
3
2
1
0
2 3
P
P
P
P
.
0 0 0 1
0 0 3 3
0 3 6 3
1 3 3 1
. 1 ) ( t t t t P
(7.2)
e, a primeira derivada paramtrica, P(t), definida por
| |
(
(
(
(

(
(
(
(



=
3
2
1
0
2
P
P
P
P
.
0 0 0 1
0 0 3 3
0 3 6 3
1 3 3 1
. 0 1 2 3 ) ( ' t t t P
. (7.3)
CAPTULO 7 RECONSTRUO 3D DE LOOPS DA COROA SOLAR

71

Para cada ponto P(t) na curva, o vetor tangente curva
) ( '
) ( '
) (
t P
t P
t P =
r
. (7.4)
Depois da especificao da curva Bezier, so realizadas deformaes
parciais das imagens da base e topo do loop.
7.2 Deformao de Imagens controlada pela Curva
Bezier
A deformao de imagens mapeia cada pixel de uma imagem em uma nova posio
na outra imagem. Um conjunto de pontos de controle especificado para fazer o
mapeamento da posio dos pixels. O movimento dos pixels vizinhos controlado por
uma funo que depende da distncia do pixel a cada ponto de controle da imagem.
Neste trabalho, o mtodo de interpolao ponderada pela distncia inversa [26] foi
adaptado para deformao de imagens controlada pela curva Bezier.
Definida a estrutura 3D do loop, pelos pontos P0, P1, P2 e P3 com
coordenadas (x0, y0, z0), (x1, y1, z1), (x2, y2, z2) e (x3, y3, z3), respectivamente, um par de
pontos da curva Pc0 e Pc1 deve ser determinado para cada fatia n, para realizar a
deformao parcial das imagens da base e topo. A Figura 7.3 mostra os pontos Pc0 e
Pc1 da fatia n e outros parmetros descritos nesta seo.

FIGURA 7.3 Parmetros para deformao com curva Bezier.
CAPTULO 7 RECONSTRUO 3D DE LOOPS DA COROA SOLAR

72

Os pontos da curva, Pc0 e Pc1, de uma fatia n tm a mesma coordenada
z = n. Pela Equao 7.1 ou 7.2, tendo a coordenada z de uma determinada fatia e as
coordenadas zi dos quatro pontos que definem a curva Bezier, as razes t0 e t1 da
funo polinomial da curva Bezier so determinadas pelo mtodo de Laguerre [18],
resolvendo-se a equao
z = (1 t)
3
z0 + 3t (1 t)
2
z1 + 3t
2
(1 t) z2 + t
3
z3.
Agora, para encontrar as coordenadas x e y dos pontos de controle
Pc0 (px0, py0, z) e Pc1 (px1, py1, z), a funo polinomial da curva Bezier deve ser
calculada com o parmetro t = t0 e t = t1. Desta forma,
px0 = (1 t0)
3
x0 + 3t0 (1 t0)
2
x1 + 3t0
2
(1 t0) x2 + t0
3
x3,
py0 = (1 t0)
3
y0 + 3t0 (1 t0)
2
y1 + 3t0
2
(1 t0) y2 + t0
3
y3,
px1 = (1 t1)
3
x0 + 3t1 (1 t1)
2
x1 + 3t1
2
(1 t1) x2 + t1
3
x3,
py1 = (1 t1)
3
y0 + 3t1 (1 t1)
2
y1 + 3t1
2
(1 t1) y2 + t1
3
y3.
Para cada ponto de controle Pci de uma determinada fatia, um
interpolador local f
i
: |R
2
|R
2
especificado. O interpolador f
i
foi definido com base no
vetor tangente curva Bezier no ponto de controle Pci. Assim, os interpoladores f
0
e f
1

nos pontos de controle Pc0 e Pc1 so especificados por
0 0
c P 1
r
= f
e
1 1
c P 1
r
= f

onde
0
c P
r
e
1
c P
r
so os vetores tangentes curva Bezier nos pontos Pc0 e Pc1,
calculados pela Equao 7.4, como
) , , (
) , , (
c P
c P
c P
0 0 0
2
0
2
0
2
0
0 0 0
0
0
0
tz ty tx
dz dy dx
dz dy dx
=
+ +
=

=
r

) , , (
) , , (
c P
c P
c P
1 1 1
2
1
2
1
2
1
1 1 1
1
1
1
tz ty tx
dz dy dx
dz dy dx
=
+ +
=

=
r

onde
0
c P e
1
c P so as primeiras derivadas nos pontos Pc0 e Pc1. As derivadas
0
c P e
1
c P so calculadas usando a Equao 7.3, com t = t0 e t = t1, respectivamente.
CAPTULO 7 RECONSTRUO 3D DE LOOPS DA COROA SOLAR

73

Finalmente, os interpoladores locais f
0
e f
1
nos pontos Pc0 e Pc1 so
determinados por
0 0
1 tx fx =
1 1
1 tx fx =
0 0
1 ty fy =
1 1
1 ty fy =
Agora uma funo de interpolao f(x, y) deve ser encontrada para
mapear cada pixel da imagem da base (ou topo) em uma nova posio, realizando
assim a deformao da imagem da base (ou topo). A funo de interpolao
ponderada pela distncia inversa f(x, y) uma mdia ponderada das funes locais f
0

e f
1
, com pesos w
0
e w
1
dependendo da distncia do pixel aos respectivos pontos de
controle. A funo f(x, y) calculada por
) , ( ) , ( ) , ( ) , ( ) , (
1 1 0 0
y x f y x w y x f y x w y x f + = .
A funo peso w
i
: |R
2
|R depende da distncia inversa de um pixel
P(x, y) ao ponto de controle Pci, normalizado pela soma das distncias inversas de
todos os pontos de controle. Os pesos w
0
e w
1
so calculados por
) , ( ) , (
) , (
) , (
1 0
0
0
y x d y x d
y x d
y x w
+
= e
) , ( ) , (
) , (
) , (
1 0
1
1
y x d y x d
y x d
y x w
+
= ,
onde d0(x, y) e d1(x, y) so as distncias inversas do pixel P(x, y) aos pontos de controle
Pc0 e Pc1, respectivamente. A distncia euclidiana inversa di(x, y) de um pixel P(x, y)
para o ponto de controle Pci(xi, yi)
2 2
) ( ) (
1
Pc P
1
) , (
i i
i
i
y y x x
y x d
+
=

=
.
Para gerar as imagens da base e topo do loop, cada pixel na posio (x, y)
da base (ou topo) movido para uma nova posio (x, y) = (x, y) + (x, y) na fatia
n, sendo a funo de interpolao ponderada pela distncia inversa, e (x, y) um
deslocamento que depende do ponto de controle mais prximo.
CAPTULO 7 RECONSTRUO 3D DE LOOPS DA COROA SOLAR

74

O deslocamento (x, y) de cada pixel da fatia definido como a
distncia xy entre o ponto de controle mais prximo na fatia n e o ponto de controle
correspondente na imagem da base, para deformao da imagem da base (ou o ponto
de controle correspondente na imagem do topo, para deformao da imagem do
topo). Assim, para deformao da imagem da base, a posio de cada pixel (x, y) mais
prximo do ponto Pc0 calculada por (x, y) = (x, y) + (fx0, fy0).(x, y), com
(x, y) = P0 Pc0 = (x0 px0, y0 py0). O mesmo feito para os pixels mais prximos
do ponto Pc1 que do ponto Pc0, com = (fx1, fy1) e (x, y) = P3 Pc1 = (x3 px1,
y3 py1).
Conforme ilustrado na Figura 7.4, o ponto de controle P0 na imagem da
base mapeado para uma nova posio na fatia n, com um deslocamento xy. Os
pixels que esto mais distantes dos pontos de controle so deslocados com xy
menor, ponderado pela funo de interpolao. O mesmo procedimento realizado
para deformao da imagem do topo.

FIGURA 7.4 Mapeamento de pixels no processo de deformao com curva Bezier.
Agora as imagens intermedirias do loop so geradas com morphing das
imagens da base e topo.
Pc0
Pc1
CAPTULO 7 RECONSTRUO 3D DE LOOPS DA COROA SOLAR

75

7.3 Reconstruo 3D de Loops usando Metamorfose
de Imagens
O processo de metamorfose de imagens para reconstruo 3D do loop consiste de um
estgio de deformao das imagens da base e topo. A Figura 7.5 mostra algumas
fatias deformadas e seus respectivos pontos de controle de deformao.
Simultaneamente, um mtodo de interpolao de imagens usado para determinar o
valor do pixel da imagem intermediria a partir das imagens deformadas.

(a) Imagens deformadas da base (b) Imagens deformadas do topo

(c) Imagens intermedirias do loop
FIGURA 7.5 Processo de metamorfose de imagens: deformao + interpolao de imagens.
Neste projeto, o mtodo de interpolao cross-dissolve e o mtodo de
Interpolao 3D de Imagens usando a Teoria de Estimao Bayesiana so usados para gerar
uma imagem intermediria entre cada par de imagens deformadas da base e topo. A
Figura 7.6 mostra o resultado da visualizao 3D do loop a partir de 100 imagens
intermedirias.

FIGURA 7.6 Resultado da reconstruo 3D do loop usando morphing de imagens.
No prximo captulo apresentado o programa de reconstruo 3D de
loops implementado neste trabalho de mestrado.
Interpolao
de Imagens



8
Programa de Reconstruo 3D de
Arcos Coronais


O projeto Reconstruo 3D de Imagens Tomogrficas de Raios-X de Arcos Coronais em
Ambiente Paralelo foi implementado para ser executado no sistema Atlas, composto
atualmente de um host PC Pentium com Windows NT e quatro processadores
ADSP-21160

.
Este projeto constitudo de um programa paralelo para deformao de
imagens e um programa para interpolao de imagens. Alm disso, um programa
principal oferece uma interface grfica de usurio e uma interface para visualizao
de volume, integrando todas as fases de reconstruo e visualizao 3D do arco
coronal, de forma transparente para o usurio.
O programa paralelo de deformao de imagens, implementado no
Ambiente Visual de Desenvolvimento de Programas Paralelos de Tempo Real, executado
nos DSPs da mquina paralela e gerenciado pelo kernel Virtuoso.
O mtodo original de Interpolao 3D de Imagens usando a Teoria de
Estimao Bayesiana, implementado em MATLAB, foi convertido para a linguagem de
programao IDL (Interactive Data Language).

Ver a descrio do ambiente de desenvolvimento do projeto no Apndice A: Sistema Paralelo Atlas com kernel
Virtuoso, Ambiente Visual de Desenvolvimento de Programas Paralelos de Tempo Real para Virtuoso e ambiente de
desenvolvimento IDL.
CAPTULO 8 PROGRAMA DE RECONSTRUO 3D DE ARCOS CORONAI S

77

Para implementar a interface grfica de usurio foram usados os
recursos do ambiente de desenvolvimento IDL.
O programa principal IDL, interpretado e executado no host PC da
mquina paralela, solicita um servio enviando uma mensagem para o programa
paralelo que responde solicitao enviando os dados solicitados. Esta interao
atravs de mensagens, baseada no modelo cliente-servidor, possibilita a
implementao e execuo da aplicao e do servidor de paralelismo,
independentemente da linguagem de programao usada e do local de execuo.










FIGURA 8.1 Estrutura do programa de reconstruo 3D de loops.
Para permitir a troca de mensagens, o programa paralelo e o programa
principal IDL so integrados atravs de um pipe de comunicao bidirecional. O
programa IDL envia as imagens originais do topo e base do loop para uma tarefa
mestre. Esta tarefa distribui as imagens para diversas tarefas, que geram
simultaneamente em cada DSP uma seqncia de pares de imagens deformadas da
base e do topo. Enquanto as tarefas de deformao geram pares de imagens
deformadas, estas imagens so enviadas diretamente para o programa IDL. Ento, o
programa IDL interpola cada par de imagens deformadas, usando interpolao
bayesiana, para gerar as imagens intermedirias do loop. Estas imagens so
armazenadas num array tridimensional de voxels para gerar o volume de dados.
Finalmente, o usurio pode visualizar as imagens tomogrficas reconstrudas e a
estrutura 3D do loop, usando os recursos de visualizao de dados 2D e 3D oferecidos
pela linguagem IDL.
IDL
Virtuoso
Programa IDL
Programa Paralelo
Mestre
T1
T2
Tn
Host PC
DSPs
CAPTULO 8 PROGRAMA DE RECONSTRUO 3D DE ARCOS CORONAI S

78

8.1 Programa Paralelo de Reconstruo 3D
O processo de reconstruo 3D consiste inicialmente na gerao de uma seqncia de
pares de imagens deformadas da base e topo do loop. Considerando que a
deformao da imagem um processo independente, a reconstruo 3D pode ser
facilmente paralelizada.
O programa de deformao pode ser particionado com vrios nveis de
granularidade, de forma que cada processador calcule a nova posio de um pixel da
imagem deformada, ou calcule uma parte da imagem deformada, ou ento calcule a
deformao da imagem inteira (Figura 8.2). Assim, o programa de reconstruo pode
ser dividido em vrias tarefas independentes que so distribudas entre os diversos
processadores. O grau de paralelismo pode ser aumentado, uma vez que o nmero
de pixels ou imagens muito maior que o nmero de processadores disponveis.






(a) (b) (c)
FIGURA 8.2 Particionamento para deformao das imagens.
No entanto, devido ao aumento do custo de comunicao, as tarefas
foram agrupadas em tarefas maiores, onde cada tarefa responsvel por calcular um
subconjunto de imagens deformadas a partir das imagens da base e topo do loop,
conforme ilustrado na Figura 8.3.

FIGURA 8.3 Balanceamento de carga para deformao das imagens da base e topo.
DSP 1
DSP 2
DSP 3
DSP 4
DSP 3
DSP 1
DSP 4
DSP 2
CAPTULO 8 PROGRAMA DE RECONSTRUO 3D DE ARCOS CORONAI S

79

O paralelismo foi obtido com replicao de cdigo, uma vez que todas as
tarefas de deformao executam a mesma atividade. A tarefa mestre determina o
nmero de imagens e quais imagens dentro do conjunto de volume cada tarefa deve
calcular. Com o aumento do nmero de processadores, novas tarefas podem ser
facilmente adicionadas, diminuindo o nmero de imagens processadas em cada
processador, at que cada DSP seja responsvel por deformar apenas uma imagem,
atingindo o nvel mximo de escalabilidade.
O programa paralelo de reconstruo 3D, implementado no modelo de
programao baseado em tarefas e canais, dividido em cinco tarefas (MASTER,
WARP1, WARP2, ... , WARP4) interconectadas por canais (PIPE, CHANNEL1, ... ,
CHANNEL4). O canal externo, PIPE, permite a comunicao bidirecional entre o host
PC e os DSPs da mquina paralela. Desta forma, possvel a troca de mensagens
entre o programa IDL e a tarefa MASTER e, entre cada tarefa WARP e o programa IDL.
Os outros canais fazem a comunicao interprocessador ou intraprocessador, entre as
tarefas MASTER e WARPs.








FIGURA 8.4 Estrutura de comunicao do programa de reconstruo 3D de loops.
A comunicao entre tarefas realizada atravs de primitivas de
servio fornecidas pelo kernel Virtuoso. As tarefas enviam dados para outras tarefas
usando a primitiva de canal KS_ChannelPutW() e recebem dados atravs da primitiva
Programa IDL
GetImage
HS_HostChannelClose
Master
SendImage
HS_PipeChannelOpen
HS_ChannelGetW
KS_ChannelPutW
Programa Paralelo
Warp 1
KS_ChannelGetW
Warp n
HS_ChannelPutW
CreatePipe
Pipe
Canal 1
Canal n
KS_ChannelGetW
HS_ChannelPutW
Cliente Servidor
CAPTULO 8 PROGRAMA DE RECONSTRUO 3D DE ARCOS CORONAI S

80

KS_ChannelGetW(). Desta forma, a comunicao sncrona, ou seja, ao enviar dados
para o canal, a tarefa espera at que o dado enviado seja recebido por outra tarefa. De
maneira anloga, uma tarefa receptora espera uma tarefa enviar dados para o canal.
A dependncia de dados do programa de reconstruo 3D, bem como a comunicao
externa entre programas e interna entre tarefas, so ilustradas na Figura 8.4.
Quando o programa IDL iniciado pelo usurio, uma funo IDL
CreatePipe() cria um pipe de comunicao externo. Um programa de gerenciamento de
programas paralelos do Virtuoso, Virtuoso Host Server, automaticamente executado
para carregar e executar o programa paralelo.
Todas as tarefas so inicialmente executveis e rodam em loop contnuo
para responder a vrias solicitaes do usurio. Inicialmente, a tarefa MASTER abre o
pipe de comunicao usando a primitiva HS_PipeChannelOpen(). Em seguida, a tarefa
MASTER executa a primitiva KS_ChannelGetW() e aguarda at que o programa IDL
envie as imagens originais da base e topo do loop.
Quando o usurio solicita uma reconstruo 3D, o programa IDL envia
as imagens da base e topo para a tarefa MASTER, que distribui as imagens entre as
tarefas WARP usando os canais internos. Cada tarefa WARP aguarda at receber as
imagens da base e topo, para gerar um subconjunto de pares de imagens deformadas
do loop. Durante o processo de gerao das imagens deformadas, as tarefas WARP
enviam as imagens deformadas para o programa IDL atravs do pipe de comunicao
externo.
O programa IDL recebe os pares de imagens deformadas da base e topo
de cada tarefa e gera as imagens intermedirias com interpolao de imagens. No
final do processo, as imagens intermedirias e o loop tridimensional podem ser
visualizados. Se desejar, o usurio pode executar uma nova reconstruo 3D, caso
contrrio, ao encerrar o programa IDL, uma mensagem enviada ao programa
paralelo, que fecha o pipe de comunicao externo com a primitiva
HS_HostChannelClose() e encerra a execuo.
CAPTULO 8 PROGRAMA DE RECONSTRUO 3D DE ARCOS CORONAI S

81

8.1.1 Implementao do programa paralelo
O programa paralelo foi implementado usando o Ambiente Visual de Desenvolvimento
de Programas Paralelos de Tempo Real.

Neste ambiente, os objetos de microkernel


tarefas, semforos, canais, etc. e os servios de comunicao e sincronizao so
representados graficamente, por retngulos e linhas de conexo, respectivamente. O
cdigo correspondente das conexes, ou seja, primitivas de servio oferecidas pelo
Virtuoso, so automaticamente geradas pelo ambiente visual. Alm disso, cdigos
complementares especficos das tarefas podem ser escritos em linguagem C/C++, no
editor de texto do ambiente. A Figura 8.5 mostra uma representao grfica
simplificada do programa paralelo no ambiente visual e trechos de cdigo das tarefas
MASTER e WARP1.


A representao grfica permite uma rpida compreenso do programa
paralelo. Na Figura 8.5, podemos observar o processamento paralelo e o fluxo de
dados, desde a chegada das imagens originais no pipe externo, a distribuio das
imagens entre as tarefas, o processamento nas tarefas WARP, at o envio das imagens
deformadas para o programa externo. A comunicao sncrona entre a tarefa MASTER
e WARP1 feita por pares de primitivas ChannelPutW() e ChannelGetW() conectadas
ao mesmo canal, como por exemplo, nas linhas de cdigo 3 (da tarefa MASTER) e 1 (da
tarefa WARP1).
Alm dos servios de comunicao sncrona, necessrio um
mecanismo de alocao de memria para armazenar as imagens originais da base, do
topo e das duas imagens deformadas. Dois blocos de memria so alocados na tarefa
MASTER e quatro blocos em cada tarefa WARP.

Ver Apndice A.

A representao grfica completa do programa paralelo encontra-se no Apndice F.



CAPTULO 8 PROGRAMA DE RECONSTRUO 3D DE ARCOS CORONAI S

82



























FIGURA 8.5 Representao grfica do programa paralelo no Ambiente Visual.

while(true){
KS_ChannelGetW(CHANNEL1, base_image)
KS_ChannelGetW(CHANNEL1, top_image)
for(){ // Gera n imagens deformadas
.
HS_ChannelPutW(PIPE, warped_base)
HS_ChannelPutW(PIPE, warped_top)
}
KS_SemaSignal(END1)
}
WARP 1


1



2


3

HS_PipeChannelOpen(PIPE)
do{
HS_ChannelGetW(PIPE, base_image)
HS_ChannelGetW(PIPE, top_image)
.
KS_ChannelPutW(CHANNEL1, base_image)
KS_ChannelPutW(CHANNEL1, top_image)
.
KS_ChannelPutW(CHANNEL2, base_image)
KS_ChannelPutW(CHANNEL2, top_image)
.
KS_SemaTestW(END1)
KS_SemaTestW(END2)
}while()
HS_HostChannelClose(PIPE)
MASTER





















1
2
3
CAPTULO 8 PROGRAMA DE RECONSTRUO 3D DE ARCOS CORONAI S

83

Blocos de memria de tamanho varivel so alocados e desalocados
dinamicamente na memria externa local do processador onde a tarefa est
mapeada, usando os servios do objeto Memory Pool do Virtuoso. Como a memria
da mquina paralela distribuda, uma tarefa no pode acessar diretamente a
memria de outra tarefa, nem mesmo se estas tarefas estiverem localizadas no
mesmo processador. Assim, as tarefas devem usar mecanismos de comunicao
independentes de mapeamento, enviando mensagens por mailboxes, filas ou canais.
Um mecanismo de sincronizao entre tarefas necessrio para garantir
o funcionamento correto do programa paralelo de reconstruo 3D. Conforme
ilustrado na Figura 8.5, a tarefa MASTER sincronizada com as tarefas WARP atravs
de semforos (END1,..., END4). Quando termina de gerar o subconjunto de imagens
deformadas, cada tarefa WARP sinaliza o semforo com a primitiva KS_SemaSignal(),
para indicar o trmino de processamento. A tarefa MASTER verifica o sinal de cada
semforo com a primitiva KS_SemaTestW(), aguardando at que todos os semforos
tenham sido sinalizados. A sincronizao necessria, porque uma tarefa WARP
poderia enviar imagens para o pipe externo, enquanto a tarefa MASTER espera uma
imagem original pelo mesmo pipe. Desta forma, a imagem deformada seria recebida
incorretamente, como imagem original do loop. Este problema foi resolvido com a
sincronizao, uma vez que, somente quando todas as tarefas terminam de usar o
pipe, a tarefa MASTER pode receber novas imagens originais. Uma alternativa seria
criar dois pipes externos de comunicao unidirecional.
Depois de definir todos os objetos necessrios e escrever o cdigo da
aplicao paralela, as tarefas e objetos podem ser facilmente distribudos entre os
processadores da mquina paralela, usando o editor de propriedades de objeto
oferecido pelo ambiente de desenvolvimento. As tarefas MASTER e WARP1 foram
mapeadas para o DSP1, enquanto as tarefas WARP2, WARP3 e WARP4 foram mapeadas
para os DSP2, DSP3 e DSP4, respectivamente. Os blocos de memria devem ser
CAPTULO 8 PROGRAMA DE RECONSTRUO 3D DE ARCOS CORONAI S

84

mapeados obrigatoriamente nos processadores das tarefas correspondentes. Os
canais so mapeados de acordo com os links de comunicao entre processadores.
No sistema Atlas, os links de comunicao devem ser adicionados,
dependendo da necessidade de transmisso e recepo de dados. O programador
pode especificar se os links lgicos so unidirecionais ou bidirecionais, definir o
sentido da comunicao para links unidirecionais e a velocidade de cada link. Na
Figura 8.6, se duas tarefas esto localizadas no DSP1 e DSP4, o canal de comunicao
pode ser alocado no DSP1, DSP3 ou DSP4. Se as tarefas esto na mesma placa, o canal
deve ser mapeado em um dos dois processadores daquela placa. No entanto, o
tempo de comunicao ser menor se o canal for alocado no mesmo processador da
tarefa destino.






FIGURA 8.6 Links de comunicao interprocessadores.

A seguir, so apresentados a interface principal de usurio, a interface
de execuo do programa paralelo de reconstruo e da interpolao de imagens, a
interface de visualizao e o mecanismo de integrao entre o programa IDL e o
programa paralelo.









DSP2
DSP1 DSP3
DSP4
Placa Atlas2-HS Placa Atlas2-HS
CAPTULO 8 PROGRAMA DE RECONSTRUO 3D DE ARCOS CORONAI S

85

8.2 Programa Principal
O programa principal permite que o usurio selecione as imagens originais da base e
topo que devem ser enviadas para o programa paralelo, e execute todas as operaes
necessrias para reconstruo 3D, como especificao da curva Bezier, execuo do
programa paralelo e visualizao de dados. A Figura 8.7 mostra a janela principal da
interface grfica de usurio.

FIGURA 8.7 Interface grfica principal.
8.2.1 Especificao e visualizao da curva Bezier 3D
O primeiro passo para reconstruo 3D a especificao das coordenadas de quatro
pontos de controle da curva Bezier. A curva Bezier 3D pode ser visualizada numa
interface grfica.

FIGURA 8.8 Interface de especificao e visualizao da curva Bezier.
CAPTULO 8 PROGRAMA DE RECONSTRUO 3D DE ARCOS CORONAI S

86

8.2.2 Interface de execuo do programa paralelo
O programa paralelo de reconstruo 3D executado pelo usurio atravs do menu
do programa principal. As imagens originais da base e topo so enviadas ao
programa paralelo, que retornam as imagens deformadas. Uma barra de progresso
de cada tarefa, atualizada sempre que um par de imagens deformadas recebido,
mostra o tempo de execuo de cada tarefa nos quatro processadores. A partir das
imagens deformadas, as imagens intermedirias so geradas no programa IDL e
visualizadas na interface do usurio.

FIGURA 8.9 Interface de execuo do programa paralelo de reconstruo 3D.
Como as imagens intermedirias so geradas em ordem aleatria entre
os subconjuntos de fatias do volume, necessrio que cada tarefa envie as imagens
deformadas com um identificador de tarefa e nmero de seqncia da imagem.
Desta forma, o array tridimensional de voxels pode ser armazenado corretamente.
8.2.3 Interface de visualizao 3D de loops
A linguagem IDL oferece uma interface grfica para visualizao e manipulao
interativa de volumes e iso-surperfcies. O loop tridimensional pode ser visualizado
com o mtodo MIP, ray-casting ou iso-superfcie. A Figura 8.10 mostra a interface
grfica de visualizao 3D.
CAPTULO 8 PROGRAMA DE RECONSTRUO 3D DE ARCOS CORONAI S

87


FIGURA 8.10 Interface de visualizao 3D de loops.
8.2.4 Integrao de programas entre IDL&Virtuoso
A linguagem IDL permite que funes e procedimentos escritos em linguagem C/C++
sejam adicionados ao conjunto de rotinas da linguagem IDL, atravs de bibliotecas
compartilhadas [7]. Desta forma, uma DLL com as funes CreatePipe(), SendImage()
e GetImage() foi gerada para fazer a comunicao com o programa Virtuoso.
As funes SendImage() e GetImage() usam funes ReadFile() e
WriteFile() de C++, para leitura e escrita em arquivos e pipes. Estas funes so
compatveis com as primitivas HS_ChannelGet() e HS_ChannelPut() do Virtuoso.
Quando o ambiente de desenvolvimento IDL iniciado, estas rotinas
so automaticamente adicionadas ao conjunto de rotinas da linguagem IDL,
permitindo que o programador use estas funes sem se preocupar com detalhes de
implementao.

No prximo captulo so apresentados os resultados obtidos com o mtodo de
reconstruo 3D de loops, e uma anlise do programa paralelo de reconstruo.



9
Resultados


Nesta seo so apresentados os resultados da reconstruo 3D de loops e a anlise de
desempenho do programa paralelo de deformao de imagens.
9.1 Anlise do Programa Paralelo
Para fazer a anlise do programa paralelo de deformao de imagens, o programa foi
executado em uma mquina paralela com quatro processadores, gerando um nmero
fixo de 103 imagens deformadas da base e topo.
Os tempos de execuo foram medidos executando-se o programa
paralelo em um nmero crescente de processadores. O ganho (speedup) e a eficincia
so determinados por
P
P
T
T
S
1
= e
P
S
E
P
P
= ,
onde T1 o tempo de execuo em um processador e Tp, em P processadores.
A Tabela 1 mostra o tempo de execuo, a eficincia e o speedup do
programa paralelo por nmero de processadores. A Figura 9.1 mostra os grficos de
tempo de execuo, eficincia e speedup por nmero de processadores.

CAPTULO 9 RESULTADOS

89

Tabela 1 Tempo de execuo (em segundos),
eficincia, e speedup do programa paralelo.

Nmero de
Processadores
Tempo
(s)
Eficincia
(%)
Speedup
1 75,86 100,00 1,0
2 38,36 98,88 1,98
3 25,63 98,67 2,96
4 19,28 98,37 3,93



0
10
20
30
40
50
60
70
80
1 2 3 4
Processadores
T
e
m
p
o

(
m
s
)


0,9
0,92
0,94
0,96
0,98
1
1 2 3 4
Processadores
E
f
i
c
i

n
c
i
a

1
1,5
2
2,5
3
3,5
4
1 2 3 4
Processadores
S
p
e
e
d
u
p


FIGURA 9.1 Grficos de tempo de execuo, eficincia e speedup por nmero de processadores.
A eficincia se mantm praticamente constante e o ganho cresce
linearmente com o aumento do nmero de processadores, o que significa que o
algoritmo escalvel. Para verificar se o programa paralelo escalvel para nmeros
maiores de processadores, seria necessrio estimar o tempo de execuo para
determinar a eficincia e speedup. Com isso, poderamos determinar o nmero
mximo de processadores para manter a eficincia acima de um determinado valor.

CAPTULO 9 RESULTADOS

90

9.2 Anlise da Reconstruo 3D do Loop
O loop foi reconstrudo com um nmero total de 103 fatias de 128x128 pixels. O
tamanho do loop determinado pela altura da curva Bezier mostrada na Figura 9.2.

FIGURA 9.2 Estrutura do loop.
A Figura 9.3 mostra uma comparao da reconstruo da estrutura
tridimensional do loop, usando os mtodos cross-dissolve e interpolao bayesiana
para gerar as imagens intermedirias no processo de metamorfose de imagens.

(a) Com cross-dissolve (b) Com interpolao bayesiana
FIGURA 9.3 Loop 3D reconstrudo com 103 imagens intermedirias de 128 x 128 pixels.
Uma vantagem do mtodo de reconstruo 3D a capacidade de obter
loops de vrias formas e tamanhos, bastando apenas definir quatro pontos de controle
para a curva Bezier. Desta forma, um loop torcido com uma forma sigmoidal pode ser
facilmente reconstrudo a partir das imagens da base e topo. Quando as imagens de
raios-X mostram loops torcidos, com aparncia de S ou S invertido, muito provvel
ocorrer uma exploso solar em poucos dias. A Figura 9.4 mostra um loop sigmoidal
capturado pelo satlite Yohkoh em 7 de junho de 1998.
CAPTULO 9 RESULTADOS

91


FIGURA 9.4 Um loop sigmoidal capturado pelo Yohkoh.
A Figura 9.5 mostra uma curva Bezier que define a forma sigmoidal do
loop. O resultado da reconstruo do loop sigmoidal a partir das imagens
tomogrficas de raios-X da base e topo do loop mostrado na Figura 9.6.

FIGURA 9.5 Curva Bezier com forma sigmoidal.


FIGURA 9.6 Loop reconstrudo com forma sigmoidal.

Desta forma, apesar do nmero insuficiente de imagens tomogrficas
para reconstruo 3D do loop, o mtodo de reconstruo desenvolvido neste trabalho
apresenta um resultado visual satisfatrio, permitindo a reconstruo de loops de
diferentes formas e tamanhos.


10
Concluses

Imagens tomogrficas de raios-X da coroa solar permitem observar os arcos coronais
em duas profundidades da atmosfera solar. Devido necessidade de extrair
informaes a partir da estrutura tridimensional dos arcos coronais para previso de
exploses solares, mtodos de reconstruo 3D vm sendo desenvolvidos.
As sees transversais do arco coronal mudam de forma devido
distribuio espacial e transporte de plasma magntico em tubos com formato de
arco. Desta forma, um mtodo de reconstruo 3D foi desenvolvido para gerar
imagens intermedirias entre as imagens tomogrficas da base e topo do arco
coronal, usando tcnicas de metamorfose de imagens. A reconstruo 3D do arco
coronal realizada atravs de um processo de metamorfose que consiste de
deformao e interpolao de imagens para transformar gradualmente a imagem da
base na imagem do topo. A deformao progressiva das imagens da base e topo
controlada por uma curva Bezier em forma de arco, para que as duas imagens
tenham a mesma forma. Um mtodo de Interpolao 3D de Imagens usando a Teoria de
Estimao Bayesiana usado para gerar as imagens intermedirias entre cada par de
imagens deformadas. Este mtodo de reconstruo 3D apresentou bons resultados,
permitindo a reconstruo do arco com vrias formas e tamanhos. Com isso, os
cientistas espaciais poderiam definir a estrutura 3D mais adequada para cada arco
coronal.
CAPTULO 10 CONCLUSES

93

Devido necessidade de obter a reconstruo 3D em tempo razovel
para estimar os parmetros envolvidos na previso de exploses solares, um
programa paralelo de reconstruo 3D foi implementado para executar no sistema
Atlas com quatro processadores. Atualmente, apenas o processo de deformao das
imagens da base e topo executado em paralelo. Anlises preliminares mostram que
o algoritmo escalvel, o que nos permite expandir a capacidade de processamento
do sistema, aumentando o nmero de processadores, sem a necessidade de grandes
modificaes no projeto. Para determinar o nmero mximo de processadores, uma
anlise mais detalhada do algoritmo deveria ser realizada com uma estimativa do
tempo de execuo para nmeros maiores de processadores, de acordo com os
tempos de computao, comunicao e idle do algoritmo paralelo.
Como os arcos coronais so constitudos de gs aquecido a altas
temperaturas, sem uma superfcie bem definida, tcnicas de renderizao de volume,
que so mais apropriadas para visualizao de fluidos, foram usadas para visualizar
os arcos coronais aps a reconstruo. O mtodo ray casting possibilita a visualizao
de estruturas de densidades diferentes dentro do volume, atravs de funes de
transferncia de opacidade, tendo apresentado bons resultados para visualizao das
imagens de ressonncia magnticas de frutas. No caso dos arcos coronais, o resultado
visual no foi satisfatrio, uma vez que definir uma funo de opacidade uma
tarefa muito mais complexa. A tcnica maximum intensity projection apresentou um
resultado visual mais realstico sem a necessidade de definir funes de
transferncia. No entanto, as tcnicas de renderizao de volume apresentam um alto
custo computacional, dependendo do tamanho do volume.
Como proposta de trabalho futuro, podemos destacar a paralelizao
dos mtodos de interpolao de imagens e visualizao de volume, para
reconstruo e visualizao em tempo real de uma srie de imagens tomogrficas em
evoluo no tempo.


Referncias Bibliogrficas



[1] ATLAS System: user guide, Atlas2HS-V1.1. Eonic Solutions GmbH, 2001.

[2] BEIER, T., NEELY, S. Feature-based image metamorphosis. Computer
Graphics, Proceedings SIGGRAPH, 1992. v. 26, n. 2, p. 35-42.

[3] DREBIN, R. A., CARPENTER, L., HANRAHAN, P. Volume rendering.
Computer Graphics, Proceedings of SIGGRAPH, 1988. v.22, n.4, p.65-74.

[4] FOSTER, I. Designing and building parallel programs. Addison Wesley, 1995.
Disponvel em http://www.mcs.anl.gov/dbpp.

[5] GOMES, J. et al. Warping and morphing of graphical objects. Morgan Kaufmann
Publishers Inc., So Francisco, CA, 1998.

[6] IDL-Building IDL applications, version 5.4. Research Systems, Inc., 2000.

[7] IDL-External development guide, version 5.4. Research Systems, Inc., 2000.

[8] LEE, S. et al. Image metamorphosis with scattered feature constraints. IEEE
Trans. Visualization and Computer Graphics. v. 2, n. 4, p. 337-354, 1996.

[9] LEE, S. et al. Image morphing using deformation techniques. The Journal of
Visualization and Computer Animation. v. 7, n. 1, p. 3-23, 1996.

[10] LEVOY, M. Display of surfaces from volume data. IEEE Computer Graphics
and Applications, v.8, n.3, p.29-37, 1988.

[11] LEVOY, M. Efficient ray tracing of volume data. Computer Graphics.
Proceedings of SIGGRAPH. p. 157-67, 1990.

[12] LICHTENBELT, B., CRANE, R., NAQVI, S. Introduction to volume rendering.
Hewlett-Packard Professional Books. Prentice Hall PTR, 1998.

[13] LUO, B., HANCOCK, E. R. Slice interpolation using the distance transform and
morphing. Proceedings IEEE 13th International Conference on Digital Signal
Processing, p. 1145-1149, 1997.

[14] MASCARENHAS, N. D. A. et al. An estimation theoretic approach to 3D image
interpolation. In: 13
TH
BRAZILIAN SYMPOSIUM ON COMPUTER
GRAPHICS AND IMAGE PROCESSING, 2000, Gramado, RS. Proceedings
SIBGRAPI. p.163-9.




REFERNCI AS BI BLI OGRFI CAS

95



[15] MROZ, L., GRLLER, E., KNIG, A. Real-time maximum intensity projection,
Proc. Joint Eurographics - IEEE TCCG Symposium on Visualization,
VISSYM'99, p.135-144, 1999.

[16] MROZ, L., HAUSER, H., GRLLER, E., Interactive high-quality maximum
intensity projection, Proc. Eurographics 2000, v.19, n.3, p.C-341-350, 2000.

[17] PAPOULIS, A. Probability, random variables and stochastic processes. McGraw
Hill, 1965.

[18] PRESS, W.H. et al. "Roots of polynomials, Numerical recipes in C: the art of
scientific computing. 2.ed., Cambridge University Press, p.371-374, 1992.

[19] RIBEIRO, J. R. P., SILVA, N. C., MORON, C. E. A visual environment for the
development of parallel real-time programs. In: Lecture Notes in
Computer Science, 1998. v.1388, p.994-1014. http://www.dc.ufscar.br/~tev.

[20] ROGERS, D.F. e ADAMS, J.A. Space curves, Mathematical elements for
computer graphics. McGraw-Hill, 2.ed., 1990, p.289-305.

[21] ROSA, R. R., SHARMA, A. S. and VALDIVIA, J. A. Characterization of
Asymmetric Fragmentation Patterns in Spatially Extended Systems. Intl J.
Modern Physics C, v.10, n. 1, 1999, p. 147-163.

[22] ROSA, R. R. et al. Emission measurement density curves for regularization of
coronal loop tomography. Proceedings of HESSE, NASA, 1999.

[23] ROSA, R. R et al. Normalized emission measurement density curves for
reconstruction of X-ray loop tomography. ASP Conference Series, v.206,
p.293-296, 2000.

[24] ROSA, R. R. et al. Phenomenological dynamics of coronal loops using a neural
network approach. Advances in Space Research, v.25, n.9, p.1917-21, 2000.

[25] RUPRECHT, D., MLLER, H. Deformed cross-dissolves for image interpolation
in scientific visualization. The Journal of Visualization and Computer Animation.
v. 5, n. 3, p.167-181, 1994

[26] RUPRECHT, D., MLLER, H. Image warping with scattered data interpolation,
IEEE Computer Graphics and Applications, v.15, n.2, p.37-43, 1995.

[27] SHEPARD, D. A two dimensional interpolation function for irregularly spaced
data. In Proc. 23 Nat. Conf. ACM, p. 517-524, 1968.

[28] STARK, H., WOODS, J. W. Probability, random processes, and estimation
theory for engineers. 2.ed. Prentice-Hall, 1994.


REFERNCI AS BI BLI OGRFI CAS

96



[29] TSUNETA, S. and LEMEN, J. R. Dynamics of the solar coronal observed with
the Yohkoh soft X-ray telescope. Physics of Solar and Stellar Coronae, 1993,
p. 113-130.

[30] UCHIDA, Y. New Aspects of Solar Coronal Physics Revealed by Yohkoh.
Physics of Solar and Stellar Coronae, 1993, p. 97-112.

[31] VAN TREES, H. L. Detection, estimation and modulation theory, Party I.
Wiley, 1968.

[32] VIRTUOSO user guide for version 4.2, Wind River Systems, Inc. 2001.

[33] WATT, A. 3-D Computer graphics. 2.ed. Addison-Wesley, 1993. p.313-329.

[34] WATT, A., WATT, M. Advanced animation and rendering techniques. Addison-
Wesley, 1992. p.297-321.

[35] WOLBERG, G., Image morphing: a survey, The Visual Computer Journal, 1998
v.14, p.360-372.

[36] WOLBERG, G., Digital Image Warping, IEEE Computer Society Press, 1990.















Apndices
Parte I












Os recursos computacionais de hardware e software usados para implementao do
projeto de mestrado e execuo do programa de reconstruo 3D de arcos coronais
so apresentados neste captulo.
A.1 Sistema Paralelo Atlas
O sistema paralelo Atlas [1] da Eonic Solutions GmbH inclui hardware e software
para implementar e executar aplicaes que necessitam de alto desempenho. Este
sistema tem, atualmente, um host PC Pentium rodando Windows NT e duas placas
Atlas2-HS. Cada placa possui dois processadores ADSP-21160 (Hammerhead
SHARC ) da Analog Devices, 72 MHz. Para cada DSP h 2 MB de memria
SBSRAM.

FIGURA A.1 Sistema paralelo Atlas.
APNDICE A AMBI ENTE DE DESENVOLVI MENTO

99

A.2 Virtuoso Sistema Operacional de Tempo Real
O sistema operacional de tempo real Virtuoso da Wind River Systems gerencia a
execuo do programa paralelo nos processadores do sistema Atlas. O Virtuoso
(Virtual Single Processor Programming System) [32] um kernel paralelo que oferece
suporte ao desenvolvimento de aplicaes de tempo real. As aplicaes
desenvolvidas no Virtuoso so divididas em tarefas que podem interagir com outras
tarefas atravs de servios de comunicao e sincronizao. Nos sistemas
multiprocessadores, as tarefas podem ser distribudas entre os diversos
processadores. Em cada processador, o Virtuoso usa o conceito de multitarefa para
realizar a execuo concorrente das tarefas.
O Virtuoso concentra apenas os servios e objetos de microkernel
necessrios para o desenvolvimento de aplicaes paralelas. Os principais objetos de
microkernel tarefas, semforos, eventos, mailboxes, filas de mensagens, canais,
recursos e memria so apresentados a seguir. Cada objeto possui atributos
especficos e suporta um conjunto de servios.

Tarefa: Tarefas so mdulos independentes de programa, que interagem com outras
tarefas atravs dos servios de sincronizao e/ou comunicao. Os principais
servios de tarefas so:
KS_TaskStart Inicia o processamento da tarefa
KS_TaskSuspend Suspende o processamento da tarefa
KS_TaskResume Reinicia o processamento da tarefa
KS_TaskSleep Atrasa o processamento da tarefa

Semforo: Semforos so usados para sincronizar duas tarefas. Uma tarefa sinaliza
um semforo, enquanto outra tarefa espera o semforo ser sinalizado. Se o semforo
no estiver sinalizado, a tarefa pode retornar, esperar um sinal (W) ou esperar o sinal
com timeout (WT).
KS_SemaSignal Sinaliza o semforo, incrementando o contador
KS_SemaTest[W|WT] Testa o semforo, decrementando o contador

APNDICE A AMBI ENTE DE DESENVOLVI MENTO

100

Evento: Este objeto similar a um semforo, mas tem apenas dois estados (0 ou 1).
KS_EventSignal Sinaliza um evento
KS_EventTest[W] Testa um sinal do evento

Mailbox: Tarefas enviam e recebem mensagens de tamanho arbitrrio atravs de
mailboxes. Uma prioridade pode ser associada s mensagens.
KS_MsgGet[W|WT] L uma mensagem do mailbox
KS_MsgPut[W|WT] Envia uma mensagem para mailbox

Fila: Uma fila de mensagens usada para transferir pequenas quantidades de dados
de tamanho fixo, usando buffers. Nenhuma sincronizao entre tarefas necessria.
KS_FIFOGet[W|WT] Obtm uma entrada da fila
KS_FIFOPut[W|WT] Coloca uma entrada na fila

Canal: Canais so pipes que permitem uma tarefa enviar e receber dados de tamanho
arbitrrio. Alm disso, os canais permitem a comunicao entre uma tarefa e um
programa externo executado no host PC.
KS_ChannelGet[W|WT] L uma mensagem do canal
KS_ChannelPut[W|WT] Envia uma mensagem para canal

Recurso: Recurso um dispositivo lgico usado para controlar o acesso a um recurso
fsico compartilhado (memria, dispositivos de I/O, etc). Uma tarefa bloqueia um
recurso para impedir que outra tarefa de prioridade mais alta use o recurso antes
dela terminar a operao. Uma tarefa deve desbloquear o recurso aps a utilizao
do mesmo.
KS_ResLock[W|WT] Bloqueia um recurso
KS_ResUnlock Desbloqueia o recurso

Memria: Memria um recurso pelo qual as tarefas concorrem para armazenar
dados. Um ou mais blocos de memria de tamanho fixo podem ser alocados pelas
tarefas.
KS_PoolGetBlock[W|WT] Aloca um bloco de memria
KS_PoolFreeBlock Desaloca um bloco de memria
APNDICE A AMBI ENTE DE DESENVOLVI MENTO

101

A.3 Ambiente Visual de Desenvolvimento de Programas
Paralelos
O Ambiente Visual de Desenvolvimento de Programas Paralelos de Tempo Real
*
[19] oferece
suporte ao kernel de tempo real Virtuoso. Este ambiente oferece uma ferramenta para
desenvolvimento de programas paralelos, onde as aplicaes so representadas
graficamente, com objetos de microkernel denotados por retngulos e servios de
microkernel denotados por conexes entre estes objetos. Atravs de um editor de
texto, as informaes da representao grfica podem ser complementadas com
cdigo fonte C/C++, de acordo com a finalidade especfica da aplicao. A partir
destas informaes, o cdigo fonte da aplicao automaticamente gerado,
compilado e linkado, para ser executado na mquina paralela.










FIGURA A.2 Gerador de Programas do Ambiente Visual de Desenvolvimento de Programas
Paralelos de Tempo Real.

As propriedades dos objetos de microkernel e o mapeamento destes
objetos nos diversos processadores disponveis podem ser especificados num editor
de propriedades.

*
Projeto desenvolvido no Departamento de Computao/UFSCAR em cooperao com a empresa EONIC SYSTEMS
(http://www.eonic.com). O ambiente denominado TEV (Teaching Environment for Virtuoso) est disponvel para
downloading no endereo: http://www.dc.ufscar.br/~tev.
APNDICE A AMBI ENTE DE DESENVOLVI MENTO

102

A.4 Ambiente de Desenvolvimento de Programas de
Visualizao - IDL
Interactive Data Language - IDL [6] uma linguagem de programao orientada a
array para desenvolvimento de aplicaes de visualizao e anlise de dados. A
linguagem interpretada IDL possui inmeras funes matemticas, alm de funes
para processamento digital de sinais, processamento de imagens e visualizao de
volume.
Aplicaes sofisticadas podem ser facilmente desenvolvidas e
executadas no ambiente de desenvolvimento IDL. O programador pode criar
interfaces grficas de usurio e escrever aplicaes usando a linguagem IDL. Alm
disso, procedimentos ou funes especializadas podem ser escritos em C/C++ e
adicionadas para a linguagem IDL [7].


FIGURA A.3 Ambiente de Desenvolvimento IDL.









Apndices
Parte II












Na prtica, muitos problemas envolvem fenmenos aleatrios que so observaes
de natureza vetorial, como um sinal eltrico X(t) medido nos instantes t1, t2,..., tn.
Assim, um vetor aleatrio X = [X1 ... Xn]
T
observado com n variveis aleatrias Xi
representando as medidas do sinal no instante ti.

B.1 Vetor Esperado
O vetor esperado ou vetor mdia de um vetor aleatrio X = [X1 ... Xn]
T
definido por um
vetor = [1 ... n]
T
cujos elementos so dados por

+

=
i i i i
dx x p x ) ( , com i = 1,, n, (B.1)
onde p(xi) a densidade de probabilidade de Xi, definida por

+

+

+
=
n x x i
dx d d dx X p x p
i i
... ... ) ( ... ) (
1 1
1
. (B.2)




APNDICE B VETORES ALEATRI OS


105

B.2 Matriz de Covarincia
A matriz de covarincia K associada com um vetor aleatrio X definida por
K = E[(X - ).(X - )
T
]. (B.3)
Os elementos cij da matriz so
cij = E[(Xi - i).(Xj - j)] , com i, j = 1, ..., n. (B.4)
Os elementos diagonais cii da matriz de covarincia so as varincias
2
i


de Xi, e os
elementos cij fora da diagonal so as covarincias de Xi e Xj. Como cij = cji, as matrizes
de covarincia so simtricas.
(
(
(

=
2
1
2
1 `
2
1
n n
i
n
c
c

L
M M
L
K
Desenvolvendo a equao (B.3),
K = E[XX
T
] - E[X]
T
- E[X
T
] +
T

= E[XX
T
] -
T
. (B.5)
A matriz S = E[XX
T
] chamada de matriz de auto-correlao de X. A relao entre a
matriz de covarincia K e a matriz de auto-correlao S dada por
K = S -
T
ou S = K +
T
. (B.6)

B.3 Matriz de Correlao
A matriz de correlao R uma matriz simtrica definida por
(
(
(

=
1
1
1
12
1 12
L
M O
n
n


R .
Os coeficientes de correlao so
j i
ij
ij
c

= , com 1 =
ii
,
onde
ij
o coeficiente de correlao de Xi e Xj, cij a covarincia de Xi e Xj e
i
o
desvio padro de Xi.
APNDICE B VETORES ALEATRI OS


106

Os elementos da matriz de covarincia K podem ser expressos como
2
i ii
c = ou
j i ij ij
c = ,
onde
2
i
a varincia de Xi. Assim, a matriz de covarincia K pode ser escrita como
uma combinao de duas matrizes
= R K ,
onde a matriz diagonal de desvios padro,
(
(
(

=
n

L
M O M
L
0
0
1
,
e R a matriz de coeficientes de correlao.

B.4 Classificao de Vetores Aleatrios
Vetores aleatrios so freqentemente classificados como sendo no-correlacionados,
ortogonais ou independentes.

Definio B.1. Dois vetores aleatrios n-dimensionais X e Y so considerados no
correlacionados se
E[XY
T
] = E[X]E[Y
T
]. (B.7)
Definio B.2. Dois vetores aleatrios X e Y so considerados ortogonais se
E[X
T
Y] =

=
n
i
i i
Y X E
1
] [ = 0. (B.8)
Definio B.3. Dois vetores aleatrios X e Y so considerados independentes se
p(X,Y) = p(X)p(Y), (B.9)
onde p(X) e p(Y) so as funes densidade de probabilidade de X e Y,
respectivamente.







C.1 Representao de Curvas
C.1.1 Curvas no paramtricas
Uma representao no paramtrica pode ser explcita ou implcita. Para uma curva
plana, uma forma no paramtrica explcita dada por
y = f(x).
Nesta forma, para cada valor x, somente um valor y obtido. Conseqentemente,
curvas fechadas (ou com mltiplos valores, como um crculo) no podem ser
representadas explicitamente. Representaes implcitas da forma
f(x, y) = 0
no tem esta limitao.

C.1.2 Curvas paramtricas
A forma paramtrica apropriada para representar curvas fechadas e com mltiplos
valores. Na forma paramtrica, cada coordenada de um ponto da curva
representada como uma funo de um nico parmetro. Para uma curva
APNDICE C CURVA BEZI ER


108

bidimensional, com parmetro t, as coordenadas cartesianas de um ponto na curva
so
x = x(t)
y = y(t)
O vetor que define a posio de um ponto na curva dado por
P(t) = [x(t) y(t)]
A derivada (vetor tangente curva) no ponto t dada por
( ) ( ) ( ) ( ) ( ) | | t y t x t y
dt
d
t x
dt
d
t
dt
d
t =
(

= = P P ) (
A inclinao da curva dada por

A direo do vetor tangente
) (
) (
t
t
P
P


onde ) (t P a velocidade paramtrica.
A forma no paramtrica pode ser obtida da forma paramtrica eliminando-se o
parmetro t para obter uma nica equao em funo de x e y.
C.2 Curva Bezier
A curva Bzier foi desenvolvida pelo engenheiro Pierre Bzier durante seus trabalhos
em projetos de automveis para a Renault francesa no incio da dcada de 1970. Uma
curva Bezier especificada por um conjunto de pontos de controle Pi, que indica a
forma geral da curva. A curva controlada pelos pontos, e no necessariamente deve
passar por eles.
Matematicamente, uma curva Bzier paramtrica de ordem n definida como

=
=
n
i
i i
P t B t P
0
) ( ) ( 1 0 t
APNDICE C CURVA BEZI ER


109

onde as funes blending, ou funes base da curva Bzier so
i n i
i
t t
i
n
t B

|
|
.
|

\
|
= ) 1 ( . ) (
Para n pontos de controle (P
0
, P
1
, , P
n1
), a curva Bzier parametrizada por uma
funo polinomial de grau n1.

C.2.1 Curva Bezier Cbica
Uma curva Bezier cbica gerada com quatro pontos de controle. A Figura C.1
mostra alguns exemplos de curvas Bezier cbicas.




FIGURA C.1 Curvas Bezier cbicas e seus respectivos pontos de controle.

A curva est contida no fecho convexo do polgono de definio, isto , no maior
polgono convexo que pode ser obtido com os vrtices do polgono de definio. O
primeiro e o ltimo ponto da curva coincidem com o primeiro e o ltimo ponto do
polgono de definio, respectivamente.

FIGURA C.2 Polgono de definio da curva Bezier.
APNDICE C CURVA BEZI ER


110

As quatro funes blending para curvas Bezier cbicas so
3 3
0
) 1 ( ) ( t t B =
2 3
1
) 1 ( 3 ) ( t t t B =
) 1 ( 3 ) (
2 3
2
t t t B =
3 3
3
) ( t t B =




FIGURA C.3 Funes blending para curvas Bezier cbicas.

A equao da curva Bezier cbica
3
3
2
2
1
2
0
3
) 1 ( 3 ) 1 ( 3 ) 1 ( ) ( P t P t t tP t P t t P + + + =
ou seja, as coordenadas da curva no ponto t, com t variando de 0 a 1, so
3
3
2
2
1
2
0
3
) 1 ( 3 ) 1 ( 3 ) 1 ( ) ( x t x t t tx t x t t x + + + =
3
3
2
2
1
2
0
3
) 1 ( 3 ) 1 ( 3 ) 1 ( ) ( y t y t t ty t y t t y + + + =
3
3
2
2
1
2
0
3
) 1 ( 3 ) 1 ( 3 ) 1 ( ) ( z t z t t tz t z t t z + + + =
Podemos escrever a funo da curva Bezier na forma matricial como
( ) ( ) ( ) ( ) | |
(
(
(
(

=
4
3
2
1
3 2 2 3
1 3 1 3 1
P
P
P
P
t t t t t t t P
ou ento, na forma,
1 0
B
0
B
1 B
2
B
3
1
t
B
APNDICE C CURVA BEZI ER


111

| |
(
(
(
(

=
3
2
1
0
2 3
. . 1 ) (
P
P
P
P
M t t t t P
B

onde a matriz de Bezier

Da mesma forma, a derivada da curva Bezier pode ser escrita como
| |
(
(
(
(

=
3
2
1
0
2
. . 0 1 2 3 ) (
P
P
P
P
M t t t P
B


(
(
(
(



=
0 0 0 1
0 0 3 3
0 3 6 3
1 3 3 1
B
M





D.1 Interpolao 3D de Imagens usando a Teoria de
Estimao Bayesiana

O programa completo do mtodo de Interpolao 3D de Imagens usando a Teoria
de Estimao Bayesiana implementado na linguagem de programao IDL est
listado abaixo. A numerao das linhas no faz parte do cdigo do programa.

; --------------------------------------------------------------------------------------------------------------------------
; Clculo da mdia amostral e covarincia amostral das imagens observadas
; --------------------------------------------------------------------------------------------------------------------------

1 mA = MEAN(A) ; Mdia de A.
2 mB = MEAN(B) ; Mdia de B.
3 mC = (mA + mB) / 2 ; Mdia da imagem interpolada (mdia aritmtica).

4 vA = VARIANCE(A) ; Varincia da imagem A.
5 vB = VARIANCE(B) ; Varincia da imagem B.
6 vC = SQRT(vA * vB) ; Varincia da imagem interpolada (mdia
; geomtrica).

7 A = A mA
8 B = B mB






APNDICE D CDI GO FONTE I DL


113

; --------------------------------------------------------------------------------------------------------------------------
; Clculo do vetor de covarincias entre pixel estimado e pixels observados
; --------------------------------------------------------------------------------------------------------------------------
9 corrAB = CORRELATE(A, B) ; Coeficiente de correlao espectral entre
; imagens.
10 corr3D = SQRT(corrAB) ; Coeficiente de correlao espectral entre
; a imagem observada e a interpolada.
11 covAC = corr3D * SQRT(vA * vC) ; Covarincia entre a imagem A e a imagem
; interpolada.
12 covBC = corr3D * SQRT(vB * vC) ; Covarincia entre a imagem B e a imagem
; interpolada.
13 roh = .97 ; Coeficiente de correlao horizontal.
14 rov = .97 ; Coeficiente de correlao vertical.

15 cA = covAC*roh
16 cAv = covAC*rov
17 cAhv = covAC*roh*rov
18 cBh = covBC*roh
19 cBv = covBC*rov
20 cBhv = covBC*roh*rov

;Vetor de covarincias entre uma imagem observada e o ponto a ser estimado.
21 kyx= [ cAhv, cAv, cAhv, cA, covAC, cA, cAhv, cAv, cAhv,
cBhv, cBv, cBhv, cB, covBC, cB, cBhv, cBv, cBhv ]

22 s = SIZE(A)
23 nx = s[1] ; Nmero de colunas da imagem.
24 ny = s[2] ; Nmero de linhas da imagem.


; --------------------------------------------------------------------------------------------------------------------------
; Clculo da matriz de covarincia amostral entre imagens observadas
; --------------------------------------------------------------------------------------------------------------------------
25 Kxx = FLTARR(18,18) ; Alocao da matriz de covarincia.
26 X = FLTARR(18) ; Alocao do vetor de observaes.

27 N = 0.0
28 for i = 1, nx 4 do begin
29 for j = 1, ny 4 do begin
30 A1 = A[i : i+2, j : j+2] ; Janela 3x3 da imagem A.
31 B1 = B[i : i+2, j : j+2] ; Janela 3x3 da imagem B.
32 A9 = REFORM(A1, 9) ; Vetor linha com 9 pixels de A.
33 B9 = REFORM(B1, 9) ; Vetor linha com 9 pixels de B.
34 X[0: 8] = A9 ; Vetor linha com 18 pixels.
35 X[9:17] = B9
36 Xt = TRANSPOSE(X) ; Vetor coluna com 18 pixels.
37 t = Xt ## X ; Multiplicao de matrizes.
38 Kxx = Kxx + t ; Somatrio da matriz.
39 N = N + 1.0 ; Nmero de vetores observados.
40 end
41 end
42 Kxx = Kxx / N ; Matriz de covarincia amostral.
APNDICE D CDI GO FONTE I DL


114

; --------------------------------------------------------------------------------------------------------------------------
; Clculo dos coeficientes para estimao
; --------------------------------------------------------------------------------------------------------------------------
43 invKxx = INVERT(Kxx) ; Matriz inversa de K.

44 ax = kyx ## invKxx ; Coeficientes procurados.

45 a1 = REFORM(ax, 9, 2) ; Transforma vetor linha 1x18 para matriz 2x9.
46 a2 = a1[*,0] ; Vetor linha com primeiros 9 elementos.
47 a3 = a1[*,1] ; Vetor linha com ltimos 9 elementos.
48 a4 = REFORM(a2,3,3) ; Transforma vetor linha 1x9 para matriz 3x3.
49 a5 = REFORM(a3,3,3)



; --------------------------------------------------------------------------------------------------------------------------
; Interpolao 3D da imagem
; --------------------------------------------------------------------------------------------------------------------------
; Multiplicao pelos coeficientes em blocos 3x3 da janela A1.
; Multiplicao pelos coeficientes em blocos 3x3 da janela B1.
50 ITP = CONVOL(A, a4) + CONVOL(B, a5)
51 ITP = ITP + mC ; Imagem interpolada final.
52 imagem = ITP[1:nX2, 1:nY2]

53 erro = vC - (kyx ## invKxx ## TRANSPOSE(kyx)) ; Erro de interpolao.











Apndices
Parte III


















F
I
G
U
R
A

E
.
1


C
o
n
j
u
n
t
o

d
e

1
2

i
m
a
g
e
n
s

r
e
c
o
n
s
t
r
u

d
a
s

a

p
a
r
t
i
r

d
e

3

i
m
a
g
e
n
s

t
o
m
o
g
r

f
i
c
a
s

d
e

r
e
s
s
o
n

n
c
i
a

m
a
g
n

t
i
c
a

d
o

t
o
m
a
t
e
.




F
I
G
U
R
A

E
.
2


V
i
s
u
a
l
i
z
a

o

3
D

d
o

t
o
m
a
t
e

a
p

s

a

r
e
c
o
n
s
t
r
u

o

d
o

v
o
l
u
m
e

u
s
a
n
d
o

c
r
o
s
s
-
d
i
s
s
o
l
v
e
.





F
I
G
U
R
A

E
.
3


C
o
n
j
u
n
t
o

d
e

2
2

i
m
a
g
e
n
s

o
r
i
g
i
n
a
i
s

d
e

t
o
m
o
g
r
a
f
i
a

d
e

r
e
s
s
o
n

n
c
i
a

m
a
g
n

t
i
c
a

n
u
c
l
e
a
r

d
a

m
a
n
g
a
.






F
I
G
U
R
A

E
.
4


V
i
s
u
a
l
i
z
a

o

3
D

d
a

m
a
n
g
a

a
p

s

a

r
e
c
o
n
s
t
r
u

o

d
e

v
o
l
u
m
e

u
s
a
n
d
o

c
r
o
s
s
-
d
i
s
s
o
l
v
e
.

T
o
t
a
l
:

1
8
9

i
m
a
g
e
n
s
.











(
a
)









(
b
)


F
I
G
U
R
A

E
.
5


A
l
g
u
m
a
s

i
m
a
g
e
n
s

i
n
t
e
r
m
e
d
i

r
i
a
s

d
o

l
o
o
p

g
e
r
a
d
a
s

c
o
m
:

(
a
)

c
r
o
s
s
-
d
i
s
s
o
l
v
e

e

(
b
)

m
e
t
a
m
o
r
f
o
s
e

d
e

i
m
a
g
e
n
s
.







F
I
G
U
R
A

E
.
6


L
o
o
p

3
D

r
e
c
o
n
s
t
r
u

d
o

c
o
m
:

(
a
)

c
r
o
s
s
-
d
i
s
s
o
l
v
e

e

(
b
)

m
e
t
a
m
o
r
f
o
s
e

d
e

i
m
a
g
e
n
s
.








(
a
)







(
b
)







(
c
)







(
d
)


F
I
G
U
R
A

E
.
7


I
m
a
g
e
n
s

g
e
r
a
d
a
s

c
o
m

o

m

t
o
d
o

d
e

r
e
c
o
n
s
t
r
u

o

3
D

c
o
n
t
r
o
l
a
d
o

p
o
r

c
u
r
v
a

B
e
z
i
e
r
:

(
a
)

I
m
a
g
e
n
s

d
e
f
o
r
m
a
d
a
s

d
a

b
a
s
e
;

(
b
)

I
m
a
g
e
n
s

d
e
f
o
r
m
a
d
a
s

d
o

t
o
p
o
;

(
c
)

I
m
a
g
e
n
s

i
n
t
e
r
m
e
d
i

r
i
a
s

e
n
t
r
e

(
a
)

e

(
b
)

u
s
a
n
d
o

c
r
o
s
s
-
d
i
s
s
o
l
v
e
;

e

(
d
)

I
m
a
g
e
n
s

i
n
t
e
r
m
e
d
i

r
i
a
s

u
s
a
n
d
o

i
n
t
e
r
p
o
l
a

o

b
a
y
e
s
i
a
n
a
.










(
a
)







(
b
)







(
c
)







(
d
)


F
I
G
U
R
A

E
.
8


C
o
n
t
o
r
n
o

d
a
s

i
m
a
g
e
n
s

g
e
r
a
d
a
s

c
o
m

o

m

t
o
d
o

d
e

r
e
c
o
n
s
t
r
u

o

3
D

c
o
n
t
r
o
l
a
d
o

p
o
r

c
u
r
v
a

B
e
z
i
e
r
:

(
a
)

B
a
s
e
s

d
e
f
o
r
m
a
d
a
s
;

(
b
)

T
o
p
o
s

d
e
f
o
r
m
a
d
o
s
;

(
c
)

I
n
t
e
r
m
e
d
i

r
i
a
s

u
s
a
n
d
o

c
r
o
s
s
-
d
i
s
s
o
l
v
e
;

e

(
d
)

I
n
t
e
r
m
e
d
i

r
i
a
s

u
s
a
n
d
o

i
n
t
e
r
p
o
l
a

o

b
a
y
e
s
i
a
n
a














F
I
G
U
R
A

F
.
1


I
n
t
e
r
f
a
c
e

g
r

f
i
c
a

d
o

a
m
b
i
e
n
t
e

I
D
L

p
a
r
a

d
e
s
e
n
v
o
l
v
i
m
e
n
t
o

d
o

p
r
o
g
r
a
m
a

d
e

v
i
s
u
a
l
i
z
a

o

3
D





FIGURA F.2 Representao grfica do programa paralelo de deformao de imagens
tomogrficas do loop no Ambiente Visual de Desenvolvimento de Programas Paralelos de Tempo Real.

Você também pode gostar