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
34 include vtk/boxes/bbLoadHola
37 # uncomment next lines to have a file selector
38 # --------------------------------------------
40 new FileSelector openFileDialog
41 new ImageReader reader
42 connect openFileDialog.Out reader.In
45 # uncomment next lines to use Gimmick
46 # -----------------------------------
52 # uncomment next lines to Read a MHD file (and nothing else !)
53 # ------------------------------------------------------------
55 new FileSelector openFileDialog
56 set openFileDialog.Wildcard "(*.mhd)|*.mhd"
57 new MetaImageReader reader
58 connect openFileDialog.Out reader.In
61 # uncomment the following lines to read a 3D images stack
62 # (only if file name order is meaningfull)
63 # -------------------------------------------------------
65 // To choose the directory
66 new DirectorySelector ds
67 // To get the image names into a vector
68 new FilesFromDirectory fd
69 // To read all the files, as a bbitk::ImagePointer
70 new ImageSeriesReader reader
71 // user choosen directory as input
73 set fd.Recursive false
74 // list of files as input
75 #print "Files found in $ds.Out$\n
76 connect fd.Out reader.FileNames
79 # uncomment the following lines to read a 3D images stack
80 # (if the directory contains a 'XCoherent" Serie)
81 # -------------------------------------------------------
83 // To choose the directory
84 new DirectorySelector ds
85 // To get the image names into a vector
86 new FilesFromDirectory fd
87 // user choosen directory as input
89 // order the files, computes an accurate ZSpacing
90 new GetXCoherentInfoGdcmReader reader
91 connect fd.Out reader.In
94 # uncomment the following lines to read a 3D images stack
95 # (with DICOMDirReader)
96 # -------------------------------------------------------
98 include itk/boxes/bbDICOMDirReader
99 // To choose the directory
100 new DirectorySelector ds
101 new DICOMDirReader reader
102 connect ds.Out reader.In
105 // We need that to set Sliders sizes
107 #Get image dimensions, ...
108 new ImageProperties mc
109 connect reader.Out mc.In
111 #print "Image properties : $reader.Out"
113 #Get number of column (X)
114 new GetVectorIntElement gveX
115 connect mc.Size gveX.In
118 #Get number of rows (Y)
119 new GetVectorIntElement gveY
120 connect mc.Size gveY.In
123 #Get number of planes (Z)
124 new GetVectorIntElement gveZ
125 connect mc.Size gveZ.In
127 //print "Dim Z $gveZ.Out"
129 #Compute the number of the 'middle' slice on X axis
131 connect gveX.Out div0.In1
134 #Compute the number of the 'middle' slice on Y axis
136 connect gveY.Out div1.In1
139 #Compute the number of the 'middle' slice on Z axis
141 connect gveZ.Out div2.In1
145 new SimpleSlicer viewerUL
146 connect reader.Out viewerUL.In
147 connect viewerUL.Widget upleft.Widget1
148 #initial slice is the middle one
149 connect div0.Out viewerUL.Slice
150 #Slider size is the number of planes
151 connect gveX.Out viewerUL.SliderSize
152 set viewerUL.SliderReactiveOnTrack 1
153 set viewerUL.Orientation 0
154 set viewerUL.SliderOrientation H
155 set viewerUL.SliderTitle "Planes YZ"
158 new SimpleSlicer viewerUR
159 connect reader.Out viewerUR.In
160 connect viewerUR.Widget upright.Widget1
161 #initial slice is the middle one
162 connect div1.Out viewerUR.Slice
163 #Slider size is the number of planes
164 connect gveY.Out viewerUR.SliderSize
165 set viewerUR.SliderReactiveOnTrack 1
166 set viewerUR.SliderOrientation H
167 set viewerUR.Orientation 1
168 set viewerUR.SliderTitle "Planes XZ"
171 new SimpleSlicer viewerTD
172 connect reader.Out viewerTD.In
173 connect viewerTD.Widget downleft.Widget1
174 #initial slice is the middle one
175 connect div2.Out viewerTD.Slice
176 #Slider size is the number of planes
177 connect gveZ.Out viewerTD.SliderSize
178 set viewerTD.SliderReactiveOnTrack 1
179 set viewerTD.SliderOrientation H
180 set viewerTD.Orientation 2
181 set viewerTD.SliderTitle "Planes XY"
185 new ImagePlanes planes
186 connect reader.Out planes.In
189 connect planes.PlaneX viewer.Obs1
190 connect planes.PlaneY viewer.Obs2
191 connect planes.PlaneZ viewer.Obs3
194 set chkbox.Title "Interpolate Pixels (in '2D' images)"
196 connect chkbox.BoxChange viewerUL.BoxExecute
197 connect chkbox.BoxChange viewerUR.BoxExecute
198 connect chkbox.BoxChange viewerTD.BoxExecute
200 connect viewer.Widget downright.Widget1
201 connect chkbox.Widget downright.Widget2
203 connect chkbox.Out viewerUL.Interpolate
204 connect chkbox.Out viewerUR.Interpolate
205 connect chkbox.Out viewerTD.Interpolate
207 set main.WinTitle "demoViewing1"