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 a vtkgdcmReader
46 # -------------------------------------
48 new FileSelector openFileDialog
49 new GetInfoGdcmReader reader
50 connect openFileDialog.Out reader.In
53 # uncomment next lines to use Gimmick
54 # -----------------------------------
60 # uncomment next lines to Read a MHD file (and nothing else !)
61 # ------------------------------------------------------------
63 new FileSelector openFileDialog
64 set openFileDialog.Wildcard "(*.mhd)|*.mhd"
65 new MetaImageReader reader
66 connect openFileDialog.Out reader.In
69 # uncomment the following lines to read a 3D images stack
70 # (only if file name order is meaningfull)
71 # -------------------------------------------------------
73 // To choose the directory
74 new DirectorySelector ds
75 // To get the image names into a vector
76 new FilesFromDirectory fd
77 // To read all the files, as a bbitk::ImagePointer
78 new ImageSeriesReader reader
79 // user choosen directory as input
81 set fd.Recursive false
82 // list of files as input
83 #print "Files found in $ds.Out$\n
84 connect fd.Out reader.FileNames
87 # uncomment the following lines to read a 3D images stack
88 # (if the directory contains a 'XCoherent" Serie)
89 # -------------------------------------------------------
91 // To choose the directory
92 new DirectorySelector ds
93 // To get the image names into a vector
94 new FilesFromDirectory fd
95 // user choosen directory as input
97 // order the files, computes an accurate ZSpacing
98 new GetXCoherentInfoGdcmReader reader
99 connect fd.Out reader.In
102 # uncomment the following lines to read a 3D images stack
103 # (with DICOMDirReader)
104 # -------------------------------------------------------
106 include itk/boxes/bbDICOMDirReader
107 // To choose the directory
108 new DirectorySelector ds
109 new DICOMDirReader reader
110 connect ds.Out reader.In
113 // We need that to set Sliders sizes
115 #Get image dimensions, ...
116 new ImageProperties mc
117 connect reader.Out mc.In
119 #print "Image properties : $reader.Out"
121 #Get number of column (X)
122 new GetVectorIntElement gveX
123 connect mc.Size gveX.In
126 #Get number of rows (Y)
127 new GetVectorIntElement gveY
128 connect mc.Size gveY.In
131 #Get number of planes (Z)
132 new GetVectorIntElement gveZ
133 connect mc.Size gveZ.In
135 //print "Dim Z $gveZ.Out"
137 #Compute the number of the 'middle' slice on X axis
139 connect gveX.Out div0.In1
142 #Compute the number of the 'middle' slice on Y axis
144 connect gveY.Out div1.In1
147 #Compute the number of the 'middle' slice on Z axis
149 connect gveZ.Out div2.In1
153 new SimpleSlicer viewerUL
154 connect reader.Out viewerUL.In
155 connect viewerUL.Widget upleft.Widget1
156 #initial slice is the middle one
157 connect div0.Out viewerUL.Slice
158 #Slider size is the number of planes
159 connect gveX.Out viewerUL.SliderSize
160 set viewerUL.SliderReactiveOnTrack 1
161 set viewerUL.Orientation 0
162 set viewerUL.SliderOrientation H
163 set viewerUL.SliderTitle "Planes YZ"
166 new SimpleSlicer viewerUR
167 connect reader.Out viewerUR.In
168 connect viewerUR.Widget upright.Widget1
169 #initial slice is the middle one
170 connect div1.Out viewerUR.Slice
171 #Slider size is the number of planes
172 connect gveY.Out viewerUR.SliderSize
173 set viewerUR.SliderReactiveOnTrack 1
174 set viewerUR.SliderOrientation H
175 set viewerUR.Orientation 1
176 set viewerUR.SliderTitle "Planes XZ"
179 new SimpleSlicer viewerTD
180 connect reader.Out viewerTD.In
181 connect viewerTD.Widget downleft.Widget1
182 #initial slice is the middle one
183 connect div2.Out viewerTD.Slice
184 #Slider size is the number of planes
185 connect gveZ.Out viewerTD.SliderSize
186 set viewerTD.SliderReactiveOnTrack 1
187 set viewerTD.SliderOrientation H
188 set viewerTD.Orientation 2
189 set viewerTD.SliderTitle "Planes XY"
193 new ImagePlanes planes
194 connect reader.Out planes.In
197 connect planes.PlaneX viewer.Obs1
198 connect planes.PlaneY viewer.Obs2
199 connect planes.PlaneZ viewer.Obs3
202 set chkbox.Title "Interpolate Pixels (in '2D' images)"
204 connect chkbox.BoxChange viewerUL.BoxExecute
205 connect chkbox.BoxChange viewerUR.BoxExecute
206 connect chkbox.BoxChange viewerTD.BoxExecute
208 connect viewer.Widget downright.Widget1
209 connect chkbox.Widget downright.Widget2
211 connect chkbox.Out viewerUL.Interpolate
212 connect chkbox.Out viewerUR.Interpolate
213 connect chkbox.Out viewerTD.Interpolate
215 set main.WinTitle "demoViewing1"