2017-08-21 5 views
0

Meine erste Frage hier. Ich arbeite an einer Visualisierungspipeline mit der vtk-Bibliothek (Neuroimaging-Daten). Allerdings habe ich wirklich mit dem affinen Umgang zu kämpfen. Aus der Dokumentation (Beispiel doxygen, Bücher) Es scheint, sollte ich so etwas wie folgt verwenden:Python, C++ VTK Affine Transformation

transform = vtkTransform() 
matrix_vtk =vtkMatrix4x4() 
matrix_vtk.DeepCopy((1, 0, 0, 0, 0, 1, 0, 1, 0,0,1,0,0,0,0,1)) 
transform.SetMatrix(matrix_vtk) 
transform_filter = vtkTransformPolyDataFilter() 
transform_filter.SetTransform(transform) 
dataset_mapper = vtk.vtkDataSetMapper() 
dataset_mapper.SetInputConnection(transform_filter.GetOutputPort()) 
actor.SetMapper(dataset_mapper) 

jedoch die Ergebnisse nicht das sind ich erwartet hatte: D Der vollständige Code ist:

from vtk import * 

fname_trk = "test/L113619_imfs_d10_110mm.trk" 
fname_vtk = "test/L113619_imfs_d10.vtk" 
fname_ply = "test/113619_Lwhite.ply" 

reader = vtkPLYReader() 
reader.SetFileName(fname_ply) 
reader_vtk = vtkPolyDataReader() 
reader_vtk.SetFileName(fname_vtk) 

ren = vtkRenderer() 
wren = vtkRenderWindow() 
iren = vtkRenderWindowInteractor() 
wren.AddRenderer(ren) 
iren.SetRenderWindow(wren) 
mapper = vtkPolyDataMapper() 
mapper.SetInputConnection(reader.GetOutputPort()) 
mapper_vtk = vtkPolyDataMapper() 
mapper_vtk.SetInputConnection(reader_vtk.GetOutputPort()) 
actor = vtkActor() 
actor.SetMapper(mapper) 
actor_vtk = vtkActor() 
# actor_vtk.SetMapper(mapper_vtk) 
ren.AddActor(actor_vtk) 
ren.AddActor(actor) 

transform = vtkTransform() 
matrix_vtk =vtkMatrix4x4() 
matrix_vtk.DeepCopy((1, 0, 0, 0, 0, 1, 0, 1, 0,0,1,0,0,0,0,1)) 
transform.SetMatrix(matrix_vtk) 
transform_filter = vtkTransformPolyDataFilter() 
transform_filter.SetTransform(transform) 
dataset_mapper = vtk.vtkDataSetMapper() 
dataset_mapper.SetInputConnection(transform_filter.GetOutputPort()) 
actor.SetMapper(dataset_mapper) 
actor.SetMapper(datasetmapper) 

iren.Initialize() 
iren.Start() 

Alle Vorschläge?

Antwort

0

Sie haben keinen Eingang an Filter angeschlossen, etwa transform_filter.SetInputData(reader.GetOutputPort()).

Es wäre hilfreich, wenn Sie schreiben könnten, was Sie erwarten.