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\peak-j0.mhd"
16 new MetaImageReader image2
17 set image.In "C:\Documents and Settings\trillos\Bureau\Nicolas\Stage\CreaRecalage\PackRecalage\data\ImagesFabienRecalage\peak-j1.mhd"
23 #Viewer containing image 1
25 new LayoutLine v1Layout
27 connect image.Out viewer1.In
28 set viewer1.nTypeView "0"
29 connect viewer1.Widget v1Layout.Widget1
32 #Viewer containing image 2
34 new LayoutLine v2Layout
36 connect image2.Out viewer2.In
37 set viewer2.nTypeView "0"
38 connect viewer2.Widget v2Layout.Widget1
40 #LayoutSplit were the images will be
42 new LayoutSplit initialImages
43 set initialImages.Proportion "50"
44 set initialImages.Orientation H
45 connect v1Layout.Widget initialImages.Widget1
46 connect v2Layout.Widget initialImages.Widget2
48 #Layout line that will contain the buttons
50 new LayoutLine buttonsLayout
51 set buttonsLayout.Orientation V
53 #Slider were the angle will be entered
56 set slider.Title "Angle"
60 set slider.ReactiveOnTrack "1"
61 connect slider.Widget buttonsLayout.Widget1
65 #Slider were the xScale will be entered
68 set sliderX.Title "% Scale in X"
72 set sliderX.ReactiveOnTrack "1"
73 connect sliderX.Widget buttonsLayout.Widget2
77 #Slider were the yScale will be entered
80 set sliderY.Title "% Scale in Y"
84 set sliderY.ReactiveOnTrack "1"
85 connect sliderY.Widget buttonsLayout.Widget3
88 #Box were the transformation will be made
90 new Transform2DBox transform
91 connect viewer2.Point transform.CenterPoint
92 connect slider.Out transform.Angle
93 connect sliderX.Out transform.ScaleX
94 connect sliderY.Out transform.ScaleY
98 new ReSlicerBox reslice1
99 connect viewer1.Point reslice1.Origin
100 connect transform.Out reslice1.Transform
101 connect image2.Out reslice1.In
103 new SliceImage slice1
104 connect reslice1.Out slice1.In
107 new Viewer2D viewer2d
108 connect reslice1.Out viewer2d.In
109 set viewer2d.Slice "1"
111 #new ViewerNV viewer3
112 #connect reslice1.Out viewer3.In
113 #set viewer3.nTypeView "5"
114 #set viewer3.WinWidth "600"
116 # Create the reslicers
118 new SliceImage imgslice1
119 new SliceImage imgslice2
120 connect image.Out imgslice1.In
121 connect reslice1.Out imgslice2.In
123 # Create the visulization box
124 new CheckBoardBox cbb
125 connect imgslice1.Out cbb.In1
126 connect imgslice2.Out cbb.In2
130 set sdr.ReactiveOnTrack 1
136 set sdr2.ReactiveOnTrack 1
140 # Create the ZSlider for the slices
143 set sdrZ.ReactiveOnTrack 1
145 set sdrZ.Title "Z for slice"
147 connect sdrZ.Out imgslice1.Z
148 connect sdrZ.Out imgslice2.Z
149 connect sdrZ.BoxChange imgslice1.BoxExecute
150 connect sdrZ.BoxChange imgslice2.BoxExecute
152 # Create viewer & layout
153 new LayoutSplit checkerBoard
155 new Viewer2D viewerCH
156 set checkerBoard.Proportion 80
159 connect sdr.Out cbb.Cols
160 connect sdr2.Out cbb.Rows
161 connect cbb.Out viewerCH.In
163 #connect sdrZ.Widget ly.Widget1
164 connect sdr.Widget ly.Widget2
165 connect sdr2.Widget ly.Widget3
167 connect viewerCH.Widget checkerBoard.Widget1
168 connect ly.Widget checkerBoard.Widget2
170 # Create Surface View
172 new SurfaceCreator surf
176 connect imgslice1.Out surf.Image1
177 connect imgslice2.Out surf.Image2
180 set sdrSurf1.Min -500
185 set sdrSurf2.Min -500
189 connect sdrSurf1.Out surf.Height1
190 connect sdrSurf2.Out surf.Height2
192 # Create Surface Layouts
194 new LayoutSplit surface
195 new LayoutLine lySurf
196 new Viewer3D viewerSurf
197 set surface.Proportion 80
198 connect sdrSurf1.Widget lySurf.Widget1
199 connect sdrSurf2.Widget lySurf.Widget2
200 connect viewerSurf.Renderer surf.Renderer
201 #connect lySurf.BoxChange viewerSurf.BoxExecute
203 connect surf.Out1 viewerSurf.In1
204 connect surf.Out2 viewerSurf.In2
206 connect viewerSurf.Widget surface.Widget1
207 connect lySurf.Widget surface.Widget2
209 #Create Substraction View
211 new ImageSubstraction imageSub
212 connect imgslice1.Out imageSub.In1
213 connect imgslice2.Out imageSub.In2
219 set sdrSub1.Title "Upper Zero Level"
225 set sdrSub2.Title "Lower Zero Level"
227 connect sdrSub1.Out imageSub.In3
228 connect sdrSub2.Out imageSub.In4
230 new ColourSelectorButton colorU
231 new ColourSelectorButton colorM
232 new ColourSelectorButton colorL
234 set colorU.WinTitle "Upper Level Colour"
235 set colorM.WinTitle "Middle Level Colour"
236 set colorL.WinTitle "Lower Level Colour"
239 set colorM.In "50,50,50"
242 connect colorU.Out imageSub.InU
243 connect colorM.Out imageSub.InM
244 connect colorL.Out imageSub.InL
246 #Create substraction layout
249 connect imageSub.Out subView.In
251 new LayoutSplit substraction
254 connect sdrSub1.Widget lySub.Widget1
255 connect sdrSub2.Widget lySub.Widget2
257 new LayoutLine lySubColor
259 set lySubColor.Orientation H
260 connect colorU.Widget lySubColor.Widget1
261 connect colorM.Widget lySubColor.Widget2
262 connect colorL.Widget lySubColor.Widget3
264 connect lySubColor.Widget lySub.Widget3
266 set substraction.Proportion "70"
268 connect subView.Widget substraction.Widget1
269 connect lySub.Widget substraction.Widget2
271 # Create the transparency box
273 connect imgslice1.Out tb.Image1
274 connect imgslice2.Out tb.Image2
276 # Create viewer and add actors
277 new Viewer3D transparency
278 connect tb.Actor1 transparency.In1
279 connect tb.Actor2 transparency.In2
281 #Multiple inputs for managing the interaction
283 new MultipleInputs mult
284 connect slider.BoxChange mult.In1
285 connect sliderX.BoxChange mult.In2
286 connect sliderY.BoxChange mult.In3
287 connect viewer1.BoxChange mult.In4
288 connect viewer2.BoxChange mult.In5
289 #connect mult.BoxChange viewer3.BoxExecute
290 #connect mult.BoxChange viewer2d.BoxExecute
293 # Execution pipeline for checkboard
295 new MultipleInputs mult2
296 connect ly.BoxChange mult2.In1
297 connect mult.BoxChange mult2.In2
298 connect imgslice1.BoxChange mult2.In3
299 connect imgslice2.BoxChange mult2.In4
301 connect mult2.BoxChange cbb.BoxExecute
302 connect cbb.BoxChange viewerCH.BoxExecute
304 # Execution pipeline for Surface
306 new MultipleInputs mult3
307 connect mult2.BoxChange mult3.In1
308 connect sdrSurf1.BoxChange mult3.In2
309 connect sdrSurf2.BoxChange mult3.In3
311 connect mult3.BoxChange surf.BoxExecute
312 connect surf.BoxChange viewerSurf.BoxExecute
314 #Execution pipeline for Substraction
316 new MultipleInputs mult4
317 connect sdrSub1.BoxChange mult4.In1
318 connect sdrSub2.BoxChange mult4.In2
319 connect mult2.BoxChange mult4.In3
321 new MultipleInputs mult5
322 connect mult4.BoxChange mult5.In1
323 connect colorU.BoxChange mult5.In2
324 connect colorM.BoxChange mult5.In3
325 connect colorL.BoxChange mult5.In4
327 connect mult5.BoxChange imageSub.BoxExecute
328 connect imageSub.BoxChange substraction.BoxExecute
330 #Execution pipeline for Transparency
332 connect mult2.BoxChange tb.BoxExecute
333 connect tb.BoxChange transparency.BoxExecute
337 new CommandButton saveBut
338 set saveBut.Label "Save Image"
340 new FileSelector fileSave
341 set fileSave.OpenSave "Save"
342 set fileSave.Wildcard "*.mhd"
344 new MetaImageWriter writSave
345 connect reslice1.Out writSave.In
346 connect fileSave.Out writSave.Filename
348 connect saveBut.BoxChange fileSave.BoxExecute
349 connect fileSave.BoxChange writSave.BoxExecute
351 #Layout were the images and the buttones will be displayed
353 new LayoutSplit window1
354 set window1.WinWidth "600"
355 set window1.Proportion "80"
356 set window1.Orientation V
357 connect initialImages.Widget window1.Widget1
358 connect buttonsLayout.Widget window1.Widget2
360 #new LayoutSplit checkBoard
361 #set window1.WinWidth "600"
362 #set window1.Proportion "80"
363 #set window1.Orientation V
364 #connect viewer3.Widget checkBoard.Widget1
365 #connect checkView.Widget checkBoard.Widget1
368 connect checkerBoard.Widget tabs.Widget1
369 connect surface.Widget tabs.Widget2
370 connect substraction.Widget tabs.Widget3
371 connect transparency.Widget tabs.Widget4
374 connect sdrZ.Widget tools.Widget1
375 connect saveBut.Widget tools.Widget2
377 new LayoutSplit window2
378 connect tabs.Widget window2.Widget1
379 connect tools.Widget window2.Widget2
380 set window2.Proportion "90"
383 set main.WinWidth "1200"
384 set main.Proportion "50"
385 set main.Orientation H
386 connect window1.Widget main.Widget1
387 connect window2.Widget main.Widget2