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?