1#!/usr/bin/env python
2import vtk
3from vtk.util.misc import vtkGetDataRoot
4VTK_DATA_ROOT = vtkGetDataRoot()
5
6# Image pipeline
7reader = vtk.vtkImageReader()
8reader.ReleaseDataFlagOff()
9reader.SetDataByteOrderToLittleEndian()
10reader.SetDataExtent(0,63,0,63,1,93)
11reader.SetDataSpacing(3.2,3.2,1.5)
12reader.SetDataOrigin(-100.8,-100.8,-69)
13reader.SetFilePrefix("" + str(VTK_DATA_ROOT) + "/Data/headsq/quarter")
14reader.SetDataMask(0x7fff)
15reader.Update()
16p1 = vtk.vtkPoints()
17p2 = vtk.vtkPoints()
18p1.InsertNextPoint(0,0,0)
19p2.InsertNextPoint(-60,10,20)
20p1.InsertNextPoint(-100,-100,-50)
21p2.InsertNextPoint(-100,-100,-50)
22p1.InsertNextPoint(-100,-100,50)
23p2.InsertNextPoint(-100,-100,50)
24p1.InsertNextPoint(-100,100,-50)
25p2.InsertNextPoint(-100,100,-50)
26p1.InsertNextPoint(-100,100,50)
27p2.InsertNextPoint(-100,100,50)
28p1.InsertNextPoint(100,-100,-50)
29p2.InsertNextPoint(100,-100,-50)
30p1.InsertNextPoint(100,-100,50)
31p2.InsertNextPoint(100,-100,50)
32p1.InsertNextPoint(100,100,-50)
33p2.InsertNextPoint(100,100,-50)
34p1.InsertNextPoint(100,100,50)
35p2.InsertNextPoint(100,100,50)
36transform = vtk.vtkThinPlateSplineTransform()
37transform.SetSourceLandmarks(p1)
38transform.SetTargetLandmarks(p2)
39transform.SetBasisToR()
40reslice = vtk.vtkImageReslice()
41reslice.SetInputConnection(reader.GetOutputPort())
42reslice.SetResliceTransform(transform)
43reslice.SetInterpolationModeToLinear()
44reslice.SetOutputSpacing(1,1,1)
45cac = vtk.vtkImageCacheFilter()
46cac.SetInputConnection(reslice.GetOutputPort())
47cac.SetCacheSize(1000)
48cac.SetInputConnection(reslice.GetOutputPort())
49viewer = vtk.vtkImageViewer()
50viewer.SetInputConnection(cac.GetOutputPort())
51viewer.SetZSlice(90)
52viewer.SetColorWindow(2000)
53viewer.SetColorLevel(1000)
54viewer.SetSize(200,200)
55viewer.Render()
56# --- end of script --
57