Figura 1: Exemplo de pipeline |
Visualization Toolkit (VTK) é uma biblioteca para visualização, processamento de imagens e computação gráfica. Multiplataforma (Linux, Mac OS X e Windows) de código fonte aberto, ela dispõe de fácil integração com bibliotecas de interface gráfica como Qt, GTK, wxPython, MFC, entre outras. Além de C++, por meio de wrapper ela suporta outras linguagens de programação como Python, Java e TCL.
Para processar imagens, superfícies ou outros dados suportados pelo VTK, é possível utilizar uma das centenas de filtros disponíveis nele, a documentação é dividida por classes e a grande maioria é repleta de exemplos.
Como ilustra a figura 1, o VTK trabalha com o conceito de pipeline, aonde a entrada (input) de uma determinada funcionalidade recebe a saída de uma funcionalidade anterior (output).
No exemplo abaixo será mostrada a criação e visualização de um cubo, lembrando que nesse caso a linguagem de programação utilizada será Python. Podemos observar o resultado na figura 2.
# -*- coding: utf-8 -*- #Importar o módulo vtk import vtk #Criar a representação poligonal de um cubo de 10x10x10 cube = vtk.vtkCubeSource() cube.SetXLength(10) cube.SetYLength(10) cube.SetZLength(10) #Mapear o dado poligonal para primitivas gráficas cube_mapper = vtk.vtkPolyDataMapper() cube_mapper.SetInputConnection(cube.GetOutputPort()) #Representar o objeto em uma cena cube_actor = vtk.vtkActor() cube_actor.SetMapper(cube_mapper) cube_actor.SetPosition(0.0,0,0) cube_actor.GetProperty().SetColor(0,0,1) #Adicionar objetos e definir a cor #de fundo da cena no renderizador. ren = vtk.vtkRenderer() ren.AddActor(cube_actor) ren.SetBackground(.8, .8, .8) #Adicionar o renderizador na interface gráfica #do utilizador (GUI) ren_win = vtk.vtkRenderWindow() ren_win.AddRenderer(ren) ren_win.SetSize(600,600) #Adicionar recursos de interação na GUI interactor = vtk.vtkRenderWindowInteractor() interactor.SetRenderWindow(ren_win) #Atualizar toda a cena interactor.Render() #Manter a janela (GUI) em um loop interactor.Start()
Figura 2: Cubo renderizado com VTK |
Show de bola man! Eu estava justamenter atrás disso. Obrigado!
ResponderExcluirEstou tendo problemas ao inserir a biblioteca do VTK no meu projeto, voce poderia detalhar?
ResponderExcluirVocê está utilizando Python? O problema é na hora de gerar executável ou programar mesmo? Qual é o erro?
Excluir