1 description "3 slicers and a 3D view"
2 author "jpr@creatis.insa-lyon.fr"
5 // To show how easy it is to add smthing
6 // =====================================
17 include wxvtk/boxes/bbSimpleSlicer
21 new LayoutLine upright
23 new LayoutLine downleft
24 new LayoutSplit downright
25 set downright.Proportion 85
27 connect upright.Widget main.Widget1
28 connect upleft.Widget main.Widget2
29 connect downleft.Widget main.Widget3
30 connect downright.Widget main.Widget4
32 # Here loads 'hola.mhd'
33 # ---------------------
35 # Don't forget to comment out the following 2 lines
36 # If you want to check someting else.
38 include vtk/boxes/bbLoadHola
41 # uncomment next lines to have a file selector
42 # --------------------------------------------
44 new FileSelector openFileDialog
45 new ImageReader reader
46 connect openFileDialog.Out reader.In
49 # uncomment next lines to use a vtkgdcmReader
50 # -------------------------------------
52 new FileSelector openFileDialog
53 new GetInfoGdcmReader reader
54 connect openFileDialog.Out reader.In
57 # uncomment next lines to use Gimmick
58 # -----------------------------------
64 # uncomment next lines to Read a MHD file (and nothing else !)
65 # ------------------------------------------------------------
67 new FileSelector openFileDialog
68 set openFileDialog.Wildcard "(*.mhd)|*.mhd"
69 new MetaImageReader reader
70 connect openFileDialog.Out reader.In
73 # uncomment the following lines to read a 3D images stack
74 # (only if file name order is meaningfull)
75 # -------------------------------------------------------
77 // To choose the directory
78 new DirectorySelector ds
79 // To get the image names into a vector
80 new FilesFromDirectory fd
81 // To read all the files, as a bbitk::ImagePointer
82 new ImageSeriesReader reader
83 // user choosen directory as input
85 set fd.Recursive false
86 // list of files as input
87 #print "Files found in $ds.Out$\n
88 connect fd.Out reader.FileNames
91 # uncomment the following lines to read a 3D images stack
92 # (if the directory contains a 'XCoherent" Serie)
93 # -------------------------------------------------------
95 // To choose the directory
96 new DirectorySelector ds
97 // To get the image names into a vector
98 new FilesFromDirectory fd
99 // user choosen directory as input
101 // order the files, computes an accurate ZSpacing
102 new GetXCoherentInfoGdcmReader reader
103 connect fd.Out reader.In
106 # uncomment the following lines to read a 3D images stack
107 # (with DICOMDirReader)
108 # -------------------------------------------------------
110 include itk/boxes/bbDICOMDirReader
111 // To choose the directory
112 new DirectorySelector ds
113 new DICOMDirReader reader
114 connect ds.Out reader.In
117 // We need that to set Sliders sizes
119 #Get image dimensions, ...
120 new ImageProperties mc
121 connect reader.Out mc.In
123 #Get number of column (X)
124 new GetVectorIntElement gveX
125 connect mc.Size gveX.In
128 #Get number of rows (Y)
129 new GetVectorIntElement gveY
130 connect mc.Size gveY.In
133 #Get number of planes (Z)
134 new GetVectorIntElement gveZ
135 connect mc.Size gveZ.In
137 //print "Dim Z $gveZ.Out"
139 #Compute the number of the 'middle' slice on X axis
141 connect gveX.Out div0.In1
144 #Compute the number of the 'middle' slice on Y axis
146 connect gveY.Out div1.In1
149 #Compute the number of the 'middle' slice on Z axis
151 connect gveZ.Out div2.In1
155 new SimpleSlicer viewerUL
156 connect reader.Out viewerUL.In
157 connect viewerUL.Widget upleft.Widget1
158 #initial slice is the middle one
159 connect div0.Out viewerUL.Slice
160 #Slider size is the number of planes
161 connect gveX.Out viewerUL.SliderSize
162 set viewerUL.SliderReactiveOnTrack 1
163 set viewerUL.Orientation 0
164 set viewerUL.SliderOrientation H
165 set viewerUL.SliderTitle "Planes YZ"
168 new SimpleSlicer viewerUR
169 connect reader.Out viewerUR.In
170 connect viewerUR.Widget upright.Widget1
171 #initial slice is the middle one
172 connect div1.Out viewerUR.Slice
173 #Slider size is the number of planes
174 connect gveY.Out viewerUR.SliderSize
175 set viewerUR.SliderReactiveOnTrack 1
176 set viewerUR.SliderOrientation H
177 set viewerUR.Orientation 1
178 set viewerUR.SliderTitle "Planes XZ"
181 new SimpleSlicer viewerTD
182 connect reader.Out viewerTD.In
183 connect viewerTD.Widget downleft.Widget1
184 #initial slice is the middle one
185 connect div2.Out viewerTD.Slice
186 #Slider size is the number of planes
187 connect gveZ.Out viewerTD.SliderSize
188 set viewerTD.SliderReactiveOnTrack 1
189 set viewerTD.SliderOrientation H
190 set viewerTD.Orientation 2
191 set viewerTD.SliderTitle "Planes XY"
195 new ImagePlanes planes
196 connect reader.Out planes.In
199 connect planes.PlaneX viewer.Obs1
200 connect planes.PlaneY viewer.Obs2
201 connect planes.PlaneZ viewer.Obs3
204 set chkbox.Title "Interpolate Pixels (in '2D' images)"
206 connect chkbox.BoxChange viewerUL.BoxExecute
207 connect chkbox.BoxChange viewerUR.BoxExecute
208 connect chkbox.BoxChange viewerTD.BoxExecute
210 connect viewer.Widget downright.Widget1
211 connect chkbox.Widget downright.Widget2
213 connect chkbox.Out viewerUL.Interpolate
214 connect chkbox.Out viewerUR.Interpolate
215 connect chkbox.Out viewerTD.Interpolate
217 set main.WinTitle "demoViewing1"