11 //include vtk/boxes/bbLoadHola
14 new MetaImageReader image
15 set image.In "C:\Documents and Settings\trillos\Bureau\Nicolas\Stage\CreaRecalage\PackRecalage\data\ImagesFabienRecalage\adc-j0.mhd"
21 #Viewer containing image 1
23 new LayoutLine v1Layout
25 connect image.Out viewer1.In
26 set viewer1.nTypeView "0"
27 connect viewer1.Widget v1Layout.Widget1
30 #Viewer containing image 2
32 new LayoutLine v2Layout
34 connect image.Out viewer2.In
35 set viewer2.nTypeView "0"
36 connect viewer2.Widget v2Layout.Widget1
38 #LayoutSplit were the images will be
40 new LayoutSplit initialImages
41 set initialImages.Proportion "50"
42 set initialImages.Orientation H
43 connect v1Layout.Widget initialImages.Widget1
44 connect v2Layout.Widget initialImages.Widget2
46 #Layout line that will contain the buttons
48 new LayoutLine buttonsLayout
49 set buttonsLayout.Orientation V
51 #Slider were the angle will be entered
54 set slider.Title "Angle"
58 set slider.ReactiveOnTrack "1"
59 connect slider.Widget buttonsLayout.Widget1
63 #Slider were the xScale will be entered
66 set sliderX.Title "% Scale in X"
70 set sliderX.ReactiveOnTrack "1"
71 connect sliderX.Widget buttonsLayout.Widget2
75 #Slider were the yScale will be entered
78 set sliderY.Title "% Scale in Y"
82 set sliderY.ReactiveOnTrack "1"
83 connect sliderY.Widget buttonsLayout.Widget3
86 #Box were the transformation will be made
88 new Transform2DBox transform
89 connect viewer2.Point transform.CenterPoint
90 connect slider.Out transform.Angle
91 connect sliderX.Out transform.ScaleX
92 connect sliderY.Out transform.ScaleY
96 new ReSlicerBox reslice1
97 connect viewer1.Point reslice1.Origin
98 connect transform.Out reslice1.Transform
99 connect image.Out reslice1.In
101 new SliceImage slice1
102 connect reslice1.Out slice1.In
105 new Viewer2D viewer2d
106 connect reslice1.Out viewer2d.In
107 set viewer2d.Slice "1"
109 #new ViewerNV viewer3
110 #connect reslice1.Out viewer3.In
111 #set viewer3.nTypeView "5"
112 #set viewer3.WinWidth "600"
114 # Create the reslicers
116 new SliceImage imgslice1
117 new SliceImage imgslice2
118 connect image.Out imgslice1.In
119 connect reslice1.Out imgslice2.In
121 # Create the visulization box
122 new CheckBoardBox cbb
123 connect imgslice1.Out cbb.In1
124 connect imgslice2.Out cbb.In2
128 set sdr.ReactiveOnTrack 1
134 set sdr2.ReactiveOnTrack 1
138 # Create the ZSlider for the slices
141 set sdrZ.ReactiveOnTrack 1
143 set sdrZ.Title "Z for slice"
145 connect sdrZ.Out imgslice1.Z
146 connect sdrZ.Out imgslice2.Z
147 connect sdrZ.BoxChange imgslice1.BoxExecute
148 connect sdrZ.BoxChange imgslice2.BoxExecute
150 # Create viewer & layout
151 new LayoutSplit checkerBoard
153 new Viewer2D viewerCH
154 set checkerBoard.Proportion 80
157 connect sdr.Out cbb.Cols
158 connect sdr2.Out cbb.Rows
159 connect cbb.Out viewerCH.In
161 #connect sdrZ.Widget ly.Widget1
162 connect sdr.Widget ly.Widget2
163 connect sdr2.Widget ly.Widget3
165 connect viewerCH.Widget checkerBoard.Widget1
166 connect ly.Widget checkerBoard.Widget2
168 # Create Surface View
170 new SurfaceCreator surf
174 connect imgslice1.Out surf.Image1
175 connect imgslice2.Out surf.Image2
178 set sdrSurf1.Min -500
183 set sdrSurf2.Min -500
187 connect sdrSurf1.Out surf.Height1
188 connect sdrSurf2.Out surf.Height2
190 # Create Surface Layouts
192 new LayoutSplit surface
193 new LayoutLine lySurf
194 new Viewer3D viewerSurf
195 set surface.Proportion 80
196 connect sdrSurf1.Widget lySurf.Widget1
197 connect sdrSurf2.Widget lySurf.Widget2
198 connect viewerSurf.Renderer surf.Renderer
199 #connect lySurf.BoxChange viewerSurf.BoxExecute
201 connect surf.Out1 viewerSurf.In1
202 connect surf.Out2 viewerSurf.In2
204 connect viewerSurf.Widget surface.Widget1
205 connect lySurf.Widget surface.Widget2
207 #Create Substraction View
209 new ImageSubstraction imageSub
210 connect imgslice1.Out imageSub.In1
211 connect imgslice2.Out imageSub.In2
217 set sdrSub1.Title "Upper Zero Level"
223 set sdrSub2.Title "Lower Zero Level"
225 connect sdrSub1.Out imageSub.In3
226 connect sdrSub2.Out imageSub.In4
228 new ColourSelectorButton colorU
229 new ColourSelectorButton colorM
230 new ColourSelectorButton colorL
232 set colorU.WinTitle "Upper Level Colour"
233 set colorM.WinTitle "Middle Level Colour"
234 set colorL.WinTitle "Lower Level Colour"
237 set colorM.In "50,50,50"
240 connect colorU.Out imageSub.InU
241 connect colorM.Out imageSub.InM
242 connect colorL.Out imageSub.InL
244 #Create substraction layout
247 connect imageSub.Out subView.In
249 new LayoutSplit substraction
252 connect sdrSub1.Widget lySub.Widget1
253 connect sdrSub2.Widget lySub.Widget2
255 new LayoutLine lySubColor
257 set lySubColor.Orientation H
258 connect colorU.Widget lySubColor.Widget1
259 connect colorM.Widget lySubColor.Widget2
260 connect colorL.Widget lySubColor.Widget3
262 connect lySubColor.Widget lySub.Widget3
264 set substraction.Proportion "70"
266 connect subView.Widget substraction.Widget1
267 connect lySub.Widget substraction.Widget2
269 # Create the transparency box
271 connect imgslice1.Out tb.Image1
272 connect imgslice2.Out tb.Image2
274 # Create viewer and add actors
275 new Viewer3D transparency
276 connect tb.Actor1 transparency.In1
277 connect tb.Actor2 transparency.In2
279 #Multiple inputs for managing the interaction
281 new MultipleInputs mult
282 connect slider.BoxChange mult.In1
283 connect sliderX.BoxChange mult.In2
284 connect sliderY.BoxChange mult.In3
285 connect viewer1.BoxChange mult.In4
286 connect viewer2.BoxChange mult.In5
287 #connect mult.BoxChange viewer3.BoxExecute
288 #connect mult.BoxChange viewer2d.BoxExecute
291 # Execution pipeline for checkboard
293 new MultipleInputs mult2
294 connect ly.BoxChange mult2.In1
295 connect mult.BoxChange mult2.In2
296 connect imgslice1.BoxChange mult2.In3
297 connect imgslice2.BoxChange mult2.In4
299 connect mult2.BoxChange cbb.BoxExecute
300 connect cbb.BoxChange viewerCH.BoxExecute
302 # Execution pipeline for Surface
304 new MultipleInputs mult3
305 connect mult2.BoxChange mult3.In1
306 connect sdrSurf1.BoxChange mult3.In2
307 connect sdrSurf2.BoxChange mult3.In3
309 connect mult3.BoxChange surf.BoxExecute
310 connect surf.BoxChange viewerSurf.BoxExecute
312 #Execution pipeline for Substraction
314 new MultipleInputs mult4
315 connect sdrSub1.BoxChange mult4.In1
316 connect sdrSub2.BoxChange mult4.In2
317 connect mult2.BoxChange mult4.In3
319 new MultipleInputs mult5
320 connect mult4.BoxChange mult5.In1
321 connect colorU.BoxChange mult5.In2
322 connect colorM.BoxChange mult5.In3
323 connect colorL.BoxChange mult5.In4
325 connect mult5.BoxChange imageSub.BoxExecute
326 connect imageSub.BoxChange substraction.BoxExecute
328 #Execution pipeline for Transparency
330 connect mult2.BoxChange tb.BoxExecute
331 connect tb.BoxChange transparency.BoxExecute
335 new CommandButton saveBut
336 set saveBut.Label "Save Image"
338 new FileSelector fileSave
339 set fileSave.OpenSave "Save"
340 set fileSave.Wildcard "*.mhd"
342 new MetaImageWriter writSave
343 connect reslice1.Out writSave.In
344 connect fileSave.Out writSave.Filename
346 connect saveBut.BoxChange fileSave.BoxExecute
347 connect fileSave.BoxChange writSave.BoxExecute
349 #Layout were the images and the buttones will be displayed
351 new LayoutSplit window1
352 set window1.WinWidth "600"
353 set window1.Proportion "80"
354 set window1.Orientation V
355 connect initialImages.Widget window1.Widget1
356 connect buttonsLayout.Widget window1.Widget2
358 #new LayoutSplit checkBoard
359 #set window1.WinWidth "600"
360 #set window1.Proportion "80"
361 #set window1.Orientation V
362 #connect viewer3.Widget checkBoard.Widget1
363 #connect checkView.Widget checkBoard.Widget1
366 connect checkerBoard.Widget tabs.Widget1
367 connect surface.Widget tabs.Widget2
368 connect substraction.Widget tabs.Widget3
369 connect transparency.Widget tabs.Widget4
372 connect sdrZ.Widget tools.Widget1
373 connect saveBut.Widget tools.Widget2
375 new LayoutSplit window2
376 connect tabs.Widget window2.Widget1
377 connect tools.Widget window2.Widget2
378 set window2.Proportion "90"
381 set main.WinWidth "1200"
382 set main.Proportion "50"
383 set main.Orientation H
384 connect window1.Widget main.Widget1
385 connect window2.Widget main.Widget2