Visualização Científica – Algoritmos de Visualização usando...

106
url: url: http://www.fe.up.pt/ http://www.fe.up.pt/ ~tavares ~tavares /ensino/VISCI/ /ensino/VISCI/ visci.html visci.html Visualização Científica – Algoritmos de Visualização usando o VTK João Manuel R. S. Tavares Jorge Gomes Barbosa

Transcript of Visualização Científica – Algoritmos de Visualização usando...

Page 1: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

url: url: http://www.fe.up.pt/http://www.fe.up.pt/~tavares~tavares/ensino/VISCI//ensino/VISCI/visci.htmlvisci.html

Visualização Científica –Algoritmos de Visualização usando o VTK

João Manuel R. S. TavaresJorge Gomes Barbosa

Page 2: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 2

Sumário1. Bibliografia.2. Criação directa e manual de objectos primitivos (cones,

cilindros, esferas, cubos, grelhas).3. Criação de vários renderers numa janela de visualização e

de várias janelas de visualização.4. Posicionamento de geometrias nos vértices de um dado

objecto.5. Visualização de funções matemáticas.6. Criação de imagens de renderização e de objectos de texto. 7. Leitura e visualização de objectos poligonais definidos em

ficheiros ascii.8. Simplificação (redução) e suavização de malhas poligonais.9. Triangulação de conjuntos de pontos 2D/3D não estruturados.10. Visualização de imagens.11. Aplicação de filtros em imagens.12. Escrita de imagens em diferentes formatos.

Page 3: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 3

Bibliografia• The Visualization Toolkit (3rd Edition)

Will Schroeder, Ken Martin, Bill LorensenISBN 1-930934-07-6Kitware, Inc. publishers

• VTK User’s Guide (VTK 4.2)Will Schroeder, Ken MartinISBN 1-930934-08-4Kitware, Inc publishers

http://www.vtk.org/buy-books.phpDisponíveis para compra on-line em:

Page 4: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 4

Criação directa da geometria• O VTK dispõe de funções para criação de forma

directa da geometria de vários objectos primitivos, por exemplo:– vtkConeSource;– vtkSphereSource;– vtkCylinderSource ...

Page 5: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 5

1º Exercício• Criação de um cone vermelho com centro em (0, 0,

0), um cilindro verde com centro em (1, 0, 0) e uma esfera azul com centro em (2, 0, 0), com um renderer, uma janela de visualização e interacção.

Libs necessárias: vtkFiltering.libvtkGraphics.libvtkRendering.lib

Page 6: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 6

1º Exercício

Criação da geometria de um cone.

Definição da cor.

Page 7: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 7

1º ExercícioCriação da geometria de um cilindro e definição do centro.

Criação do actor do cilindro e definição da cor.

Criação da geometria de uma esfera e definição do centro.

Criação do actor da esfera e definição da cor.

Page 8: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 8

1º Exercício

Criação da janela de visualização.

Criação da interacção.

Criação do renderer.

Page 9: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 9

1º Exercício

Apagar objectos.

Page 10: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 10

2º Exercício• Criação de um cone vermelho, um cilindro verde e

uma esfera azul, com três renderers (um para cada objecto), uma janela de visualização e interacção.

Libs necessárias: vtkFiltering.libvtkGraphics.libvtkRendering.lib

Page 11: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 11

2º Exercício

Page 12: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 12

2º Exercício

Definição dos renderers, dos backgrounds e das % de cada um na janela, definição da janela e definição da interacção.

Page 13: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 13

2º Exercício

... Definição dos renderers, dos backgrounds e das % de cada um na janela, definição da janela e definição da interacção.

Page 14: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 14

2º Exercício

Page 15: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 15

3º Exercício• Criação de um cone vermelho, um cilindro verde e

uma esfera azul, com três renderers (um para cada objecto) e três janelas de visualização (uma para cada renderer) com interacção.

Libs necessárias: vtkFiltering.libvtkGraphics.libvtkRendering.lib

Page 16: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 16

3º Exercício

Page 17: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 17

3º Exercício

Page 18: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 18

3º Exercício

Definição das janelas.

Definição das interacções.

Page 19: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 19

3º Exercício

Renderização e início das interacções.

Page 20: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 20

4º Exercício• Criação de um cone azul e de uma esfera castanha,

numa janela de visualização com dois renderers (um para cada objecto), e um cubo tijolo numa janela de visualização independente, as duas janelas devem ter interacção.

Libs necessárias: vtkFiltering.libvtkGraphics.lib vtkRendering.lib

Page 21: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 21

4º Exercício

Page 22: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 22

4º Exercício

Definição da % de cada renderer na janela 1 e definição dos backgrounds.

Page 23: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 23

4º Exercício

...Definição da % de cada renderer na janela 1 e definição dos backgrounds.

Page 24: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 24

Definição manual da geometria• A geometria de um objecto pode ser definida

manualmente através da especificação dos seus pontos (incluindo as coordenadas de cada ponto) e das suas células (incluindo, para cada célula, o respectivo tipo e os vértices que a constituem).

Page 25: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 25

5º Exercício• Criação de uma grelha rectangular a partir de um

volume de dimensões 47x33x44 com as coordenadas:

Libs necessárias: vtkCommon.libvtkFiltering.lib vtkGraphics.libvtkRendering.lib

Page 26: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 26

5º Exercício

Coordenadas x, y e z de cada ponto.

Page 27: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 27

5º Exercício

Arrays para as coordenadas x, y e z de cada ponto.

Definição do volume.

Page 28: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 28

5º Exercício

Extracção de uma grelha a partir da intercepçãodo volume com um plano.

Page 29: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 29

5º Exercício

Page 30: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 30

6º Exercício• Criação manual de um cubo de vértices e células:

Libs necessárias: vtkCommon.libvtkFiltering.lib vtkGraphics.libvtkRendering.lib

Page 31: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 31

6º Exercício

Page 32: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 32

6º ExercícioCoordenadas x, y de cada vértices.

Vértices de cada célula.

Criação dos vértices, das células e dos escalares.

Criação da geometria do cubo.

Page 33: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 33

6º Exercício

Page 34: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 34

Posicionamento de geometrias em vértices

• O VTK disponibiliza filtros para a criação de geometrias especificadas (2D/3D), e posteriormente posicionamento nos vértices de um dado objecto, segundo uma determinada orientação e escala:– vtkGlyph2D;– vtkGlyph3D.

Page 35: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 35

7º Exercício• Criação de uma esfera com cones representados nos

seus vértices, com a direcção das normais e escalados segundo as magnitudes das mesmas.

Libs necessárias: vtkFiltering.libvtkGraphics.lib vtkRendering.lib

Page 36: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 36

7º Exercício

Objecto com os vértices de destino.

Page 37: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 37

7º Exercício

Objecto a usar “como marca”.

Criação “das marcas”.

Definição de um actor para “as marcas”.

Page 38: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 38

7º Exercício

Page 39: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 39

Visualização de funções• O VTK é adequado para visualizar funções 2D e 3D.

Por exemplo, visualizaçãode uma função quadrática:

VTKRenderer r

VTKQuadric q

VTKSampleFunction f

VTKContourFilter c

VTKPolyDataMapper m

VTKActor a

Page 40: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 40

8º Exercício• Visualização da equação quadrática:

F(x,y,z) = 0.5*x2 + 1.0*y2 + 0.2*z2 + 0.1*y*z + 0.2*y.Para visualizar a função deverá ser realizada uma amostragem regular pontual (por exemplo, um volume ou um conjunto de pontos estruturados), e posteriormente criados os iso-contornos da quadrática F(x,y,z) = c onde c é uma constante (o valor do iso-contorno).

Libs necessárias: vtkCommon.libvtkFiltering.libvtkImaging.libvtkGraphics.libvtkRendering.lib

Page 41: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 41

8º Exercício

Criação da quadrática.

Amostragem da quadrática.

Extracção dos iso-contornos.

Page 42: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 42

8º Exercício

Criação de uma caixa exterior que delimita o volume.

Adição dos dois actores (iso-contornos e caixa) ao renderer.

Page 43: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 43

8º Exercício

Page 44: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 44

9º Exercício• Representação das funções e das derivadas de

Bessel num plano.

Libs necessárias: vtkCommon.libvtkFiltering.lib vtkGraphics.libvtkRendering.lib

Page 45: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 45

9º Exercício

Page 46: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 46

9º Exercício

Criação de um arrayde quadrados sobre um plano.

Cálculo das funções e das derivadas.

Aplicação da transformação de escalamento aos quadrados.

Page 47: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 47

9º Exercício

... Cálculo das funções e das derivadas.

Deformação dos pontos segundo a normal respectiva.

Page 48: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 48

9º Exercício

Page 49: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 49

Imagem do conteúdo de uma janela e objectos texto

• No VTK é possível criar uma imagem com o conteúdo existente numa janela de visualização: classes vtkRendererSource (obtém os dados de um render e converte-os em pontos estruturados) e vtkWindowToImageFilter (obtém os dados de uma vtkWindow e utiliza-os como entrada do pipeline de imagem).

• O VTK também disponibiliza classes para a criação de objectos de texto: vtkTextActor (pode ser usada para colocar texto, definido pela vtkTextPropertyassociada ao objecto, numa janela), vtkTextSource(converte strings em polígonos), vtkVectorText(geração de representações poligonais de alta qualidade para caracteres).

Page 50: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 50

10º Exercício• Criação de um cone, inserção do cone em dois

renderers distintos contidos numa janela de visualização, rodar 4 vezes 45º em torno do eixo vertical a câmara activa de cada renderer, para cada rotação fazer uma imagem tiff com o conteúdo da janela de visualização.

Libs necessárias: vtkCommon.libvtkFiltering.libvtkGraphics.libvtkRendering.libvtkIo.lib

Page 51: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 51

10º Exercício

Page 52: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 52

10º Exercício

Page 53: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 53

10º Exercício

Criação dos 2 renderers e da janela de visualização.

1ª imagem tif.

Page 54: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 54

10º Exercício

2ª imagem tif.

3ª imagem tif.

4ª imagem tif.

Rotação da câmara activa de cada renderer de 1 em 1º.

Page 55: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 55

10º Exercício

Page 56: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 56

11º Exercício• Criação de uma janela interactiva com o texto

“Visualizacao Cientifica”.

Libs necessárias: vtkFiltering.libvtkGraphics.libvtkRendering.libvtkHybrid.lib

Page 57: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 57

11º Exercício

Criação do objecto com o texto desejado.

Criação do actor para o texto.

Page 58: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 58

11º Exercício

Page 59: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 59

Simplificação, suavização de malhas• O VTK tem filtros para redução do número de

triângulos que constituem malhas triangulares: vtkDecimate, vtkDecimatePro, vtkQuadricDecimation, vtkQuadricClustering.

• Para a suavização de malhas poligonais o VTKdisponibiliza os filtros: vtkSmoothPolyDataFilter(suavização Laplaciana), vtkWindowedSincPolyDataFilter (utiliza um kernel de interpolação para a função windowed sinc).

Page 60: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 60

12º Exercício• Ler um objecto de malha triangular, representar o

objecto numa janela de visualização interactiva, simplificar (reduzir) o objecto, representar o novo objecto numa outra janela interactiva, escrever o novo objecto num ficheiro vtk, indicar o número de pontos e de células que constituem cada objecto.

Libs necessárias: vtkFiltering.libvtkGraphics.libvtkRendering.libvtkIO.lib

Antes Depois da simplificação

Page 61: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 61

12º Exercício

Leitura do objecto de entrada.

Nº de pontos e células do objecto de entrada.

Page 62: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 62

12º Exercício

Renderer e janela para o objecto de entrada.

Simplificação.

Criação do actor de entrada.

Page 63: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 63

12º Exercício

Criação do actor para o objecto simplificado.

Renderer, janela e interacção para o objecto simplificado.

Page 64: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 64

12º Exercício

Escrita do objecto simplificado.

Page 65: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 65

13º Exercício• Ler um objecto de malha triangular, representar o

objecto numa janela de visualização interactiva, suavizar a malha do objecto, representar o novo objecto numa outra janela interactiva, escrever o novo objecto num ficheiro vtk.

Libs necessárias: vtkFiltering.libvtkGraphics.libvtkRendering.libvtkIO.lib

Antes Depois da suavização

Page 66: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 66

13º Exercício

Leitura do objecto inicial.

Actor para o objecto inicial.

Page 67: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 67

13º Exercício

Suavização do objecto.

Melhorar a malha do objecto suavizado através das normais.

Page 68: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 68

13º Exercício

Escrita do objecto suavizado.

Page 69: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 69

13º Exercício

Page 70: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 70

Triangulação 2D/3D de pontos• O VTK inclui filtros para executar a triangulação

2D/3D de Delaunay de um conjunto de pontos não estruturados: vtkDelaunay2D, vtkDelaunay3D.

• Estes filtros podem ser usados para estruturar um conjunto de pontos e construir malhas triangulares para os mesmos.

Page 71: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 71

14º Exercício• Executar a triangulação 2D de Delaunay de um

conjunto de 25 pontos gerados aleatoriamente.

Pontos gerados Após a triangulação 2D

Libs necessárias: vtkFiltering.libvtkGraphics.libvtkRendering.libvtkCommon.lib

Page 72: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 72

14º Exercício

Geração aleatória dos 25 pontos.

Page 73: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 73

14º Exercício

Criação das células pontuais (só necessário para visualizar os pontos de entrada).

Criação da polydata para os pontos de entrada.

Actor para os pontos.

Page 74: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 74

14º Exercício

Triangulação 2D.

Actor para o resultado da triangulação 2D.

Page 75: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 75

14º Exercício

Page 76: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 76

15º Exercício• Executar a triangulação 3D de Delaunay de um

conjunto de 25 pontos gerados aleatoriamente, representar os pontos iniciais, a triangulação resultante, e as células da mesma “encolhidas” um determinado valor.

Pontos gerados Após triangulação 3D Células “encolhidas”

Page 77: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 77

15º Exercício

Libs necessárias: vtkFiltering.libvtkGraphics.libvtkRendering.libvtkCommon.lib

Page 78: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 78

15º Exercício

Geração aleatória dos 25 pontos.

Criação das células pontuais (só necessário para visualizar os pontos de entrada).

Criação da polydata para os pontos de entrada.

Actor para os pontos.

Page 79: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 79

15º Exercício

Triangulação 3D.

Actor para o resultado da triangulação 3D.

Page 80: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 80

15º Exercício

“Encolhimento”das células da triangulação 3D.

Actor para as células “encolhidas”.

Page 81: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 81

15º Exercício

Page 82: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 82

16º Exercício• Executar a triangulação 2D de Delaunay de um

conjunto de pontos 3D definidos de forma não estruturada num ficheiro ascii. Apresentação dos objectos de entrada e de saída, das coordenadas de cada ponto de entrada e do número de pontos e de células da superfície resultante.

Pontos de entradaPontos de entrada Após triangulação 2D

Page 83: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 83

16º ExercícioLibs necessárias: vtkFiltering.libvtkGraphics.libvtkRendering.libvtkCommon.lib

Coordenadas de cada ponto de entrada e número de pontos e de células da superfície resultante.

Page 84: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 84

16º Exercício

Abertura do ficheiro de entrada.

Page 85: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 85

16º Exercício

Criação das células pontuais (só necessário para visualizar os pontos de entrada).

Leitura dos pontos definidos no ficheiro.

Page 86: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 86

16º Exercício... Criação das células pontuais.

Criação da polydata para os pontos de entrada.

Actor para os pontos.

Page 87: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 87

16º Exercício

Triangulação 2D.

Escrita do nº de pontos e de células da superfície.

Actor para a superfície resultante.

Page 88: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 88

16º Exercício

Page 89: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 89

Objectos imagem• O VTK dispõe de classes para dados imagem e vários

filtros para processamento e análise de imagem.• Para visualizar dados imagens não é necessário

realizar o mapeamento dos mesmos:– os dados são inseridos directamente no actor (por exemplo,

da classe vtkImageActor);– ou então directamente na janela de visualização por

intermédio da classe vtkImageViewer (não é necessário um actor para os dados).

Page 90: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 90

17º Exercício• Visualização de uma imagem BMP definida num

ficheiro.

Libs necessárias: vtkFiltering.libvtkRendering.libvtkIo.lib

Imagem: camera.bmp

Page 91: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 91

17º Exercício

Leitura da imagem bmp.

Actor para a imagem.

Renderer e janela para o actor imagem.

Page 92: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 92

17º Exercício... janela para o actor imagem.

Interacção e renderização da janela para a imagem.

Page 93: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 93

18º Exercício• Abrir uma imagem BMP, realizar uma suavização

Gaussiana na imagem de entrada e representar as duas imagens.

Libs necessárias: vtkImaging.libvtkFiltering.libvtkRendering.libvtkIo.lib

Imagem: build.bmp

Imagem de entrada Imagem após suavização

Page 94: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 94

18º Exercício

Leitura da imagem bmp de entrada.

Actor para a imagem de entrada.

Suavização Gaussiana.

Page 95: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 95

18º Exercício

Actor para a imagem suavizada.

Page 96: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 96

18º Exercício

Page 97: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 97

19º Exercício• Ler uma imagem de entrada BMP, aplicar um filtro de

magnitude do gradiente e a seguir realizar uma binarização, representar as imagens de entrada e saída, escrever a imagem resultante no formato JPEG.

Libs necessárias: vtkImaging.libvtkFiltering.libvtkRendering.libvtkIo.lib

Imagem: camera.bmp

Imagem de entrada Imagem obtida

Page 98: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 98

19º Exercício

Leitura da imagem bmp de entrada.

Processamento da magnitude do gradiente.

Actor para a imagem de entrada.

Page 99: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 99

19º Exercício... Processamento da magnitude do gradiente.

Actor para a imagem de saída.

Binarização da imagem resultante do filtro de magnitude do gradiente.

Escrita da imagem resultante no formato JPEG.

Page 100: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 100

19º Exercício

Page 101: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 101

19º Exercício

Page 102: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 102

20º Exercício• Abrir uma imagem BMP, realizar a negação lógica,

representar as imagens de entrada e de saída, escrever a imagem de saída no formato BMP, utilizar a classe vtkImageViewer para visualizar as imagens (não é necessário um actor para a imagem).

Identificação (pasta e ficheiro) da imagem de entrada e da imagem de saída por dois argumentos da linha

de comando.

Page 103: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 103

20º Exercício

Libs necessárias: vtkImaging.libvtkFiltering.libvtkRendering.libvtkIo.lib

Imagem: visci.bmp

(só funciona para imagens binárias)

Imagem de entrada Imagem obtida

Page 104: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 104

20º Exercício

Identificação dos argumentos de entrada.

Page 105: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 105

20º Exercício

Leitura da imagem bmp de entrada.Janela para a imagem de entrada.

Interacção.

Negação lógica.

Janela para a imagem de saída.

Interacção.

Page 106: Visualização Científica – Algoritmos de Visualização usando ...tavares/ensino/VISCI/Downloads...J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização

J. Tavares / J. Barbosa Visualização Científica – Algoritmos de Visualização usando o VTK 106

20º Exercício

Escrita da imagem de saída em BMP.

Renderização e interacção.