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\t2-j0.mhd"
16 new MetaImageReader image2
17 set image2.In "C:\Documents and Settings\trillos\Bureau\Nicolas\Stage\CreaRecalage\PackRecalage\data\ImagesFabienRecalage\t2-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 ViewerNV viewerCH
156 set viewerCH.nTypeView "0"
157 set checkerBoard.Proportion 80
160 connect sdr.Out cbb.Cols
161 connect sdr2.Out cbb.Rows
162 connect cbb.Out viewerCH.In
164 #connect sdrZ.Widget ly.Widget1
165 connect sdr.Widget ly.Widget2
166 connect sdr2.Widget ly.Widget3
168 connect viewerCH.Widget checkerBoard.Widget1
169 connect ly.Widget checkerBoard.Widget2
171 # Create Surface View
173 new SurfaceCreator surf
177 connect imgslice1.Out surf.Image1
178 connect imgslice2.Out surf.Image2
181 set sdrSurf1.Min -500
186 set sdrSurf2.Min -500
190 connect sdrSurf1.Out surf.Height1
191 connect sdrSurf2.Out surf.Height2
193 # Create Surface Layouts
195 new LayoutSplit surface
196 new LayoutLine lySurf
197 new Viewer3D viewerSurf
198 set surface.Proportion 80
199 connect sdrSurf1.Widget lySurf.Widget1
200 connect sdrSurf2.Widget lySurf.Widget2
201 connect viewerSurf.Renderer surf.Renderer
202 #connect lySurf.BoxChange viewerSurf.BoxExecute
204 connect surf.Out1 viewerSurf.In1
205 connect surf.Out2 viewerSurf.In2
207 connect viewerSurf.Widget surface.Widget1
208 connect lySurf.Widget surface.Widget2
210 #Create Substraction View
212 new ImageSubstraction imageSub
213 connect imgslice1.Out imageSub.In1
214 connect imgslice2.Out imageSub.In2
220 set sdrSub1.Title "Upper Zero Level"
226 set sdrSub2.Title "Lower Zero Level"
228 connect sdrSub1.Out imageSub.In3
229 connect sdrSub2.Out imageSub.In4
231 new ColourSelectorButton colorU
232 new ColourSelectorButton colorM
233 new ColourSelectorButton colorL
235 set colorU.WinTitle "Upper Level Colour"
236 set colorM.WinTitle "Middle Level Colour"
237 set colorL.WinTitle "Lower Level Colour"
240 set colorM.In "50,50,50"
243 connect colorU.Out imageSub.InU
244 connect colorM.Out imageSub.InM
245 connect colorL.Out imageSub.InL
247 #Create substraction layout
250 connect imageSub.Out subView.In
252 new LayoutSplit substraction
255 connect sdrSub1.Widget lySub.Widget1
256 connect sdrSub2.Widget lySub.Widget2
258 new LayoutLine lySubColor
260 set lySubColor.Orientation H
261 connect colorU.Widget lySubColor.Widget1
262 connect colorM.Widget lySubColor.Widget2
263 connect colorL.Widget lySubColor.Widget3
265 connect lySubColor.Widget lySub.Widget3
267 set substraction.Proportion "70"
269 connect subView.Widget substraction.Widget1
270 connect lySub.Widget substraction.Widget2
272 # Create the transparency box
274 connect imgslice1.Out tb.Image1
275 connect imgslice2.Out tb.Image2
277 # Create viewer and add actors
278 new Viewer3D transparency
279 connect tb.Actor1 transparency.In1
280 connect tb.Actor2 transparency.In2
283 #Multiple inputs for managing the interaction
285 new MultipleInputs mult
286 connect slider.BoxChange mult.In1
287 connect sliderX.BoxChange mult.In2
288 connect sliderY.BoxChange mult.In3
289 connect viewer1.BoxChange mult.In4
290 connect viewer2.BoxChange mult.In5
291 #connect mult.BoxChange viewer3.BoxExecute
292 #connect mult.BoxChange viewer2d.BoxExecute
295 # Execution pipeline for checkboard
297 new MultipleInputs mult2
298 connect ly.BoxChange mult2.In1
299 connect mult.BoxChange mult2.In2
300 connect imgslice1.BoxChange mult2.In3
301 connect imgslice2.BoxChange mult2.In4
303 connect mult2.BoxChange cbb.BoxExecute
304 connect cbb.BoxChange viewerCH.BoxExecute
306 # Execution pipeline for Surface
308 new MultipleInputs mult3
309 connect mult2.BoxChange mult3.In1
310 connect sdrSurf1.BoxChange mult3.In2
311 connect sdrSurf2.BoxChange mult3.In3
313 connect mult3.BoxChange surf.BoxExecute
314 connect surf.BoxChange viewerSurf.BoxExecute
316 #Execution pipeline for Substraction
318 new MultipleInputs mult4
319 connect sdrSub1.BoxChange mult4.In1
320 connect sdrSub2.BoxChange mult4.In2
321 connect mult2.BoxChange mult4.In3
323 new MultipleInputs mult5
324 connect mult4.BoxChange mult5.In1
325 connect colorU.BoxChange mult5.In2
326 connect colorM.BoxChange mult5.In3
327 connect colorL.BoxChange mult5.In4
329 connect mult5.BoxChange imageSub.BoxExecute
330 connect imageSub.BoxChange substraction.BoxExecute
332 #Execution pipeline for Transparency
334 connect mult2.BoxChange tb.BoxExecute
335 connect tb.BoxChange transparency.BoxExecute
339 new CommandButton saveBut
340 set saveBut.Label "Save Image"
342 new FileSelector fileSave
343 set fileSave.OpenSave "Save"
344 set fileSave.Wildcard "*.mhd"
346 new MetaImageWriter writSave
347 connect reslice1.Out writSave.In
348 connect fileSave.Out writSave.Filename
350 connect saveBut.BoxChange fileSave.BoxExecute
351 connect fileSave.BoxChange writSave.BoxExecute
353 #Layout were the images and the buttones will be displayed
355 new LayoutSplit window1
356 set window1.WinWidth "600"
357 set window1.Proportion "80"
358 set window1.Orientation V
359 connect initialImages.Widget window1.Widget1
360 connect buttonsLayout.Widget window1.Widget2
362 #new LayoutSplit checkBoard
363 #set window1.WinWidth "600"
364 #set window1.Proportion "80"
365 #set window1.Orientation V
366 #connect viewer3.Widget checkBoard.Widget1
367 #connect checkView.Widget checkBoard.Widget1
370 connect checkerBoard.Widget tabs.Widget1
371 connect surface.Widget tabs.Widget2
372 connect substraction.Widget tabs.Widget3
373 //connect transparency.Widget tabs.Widget4
376 connect sdrZ.Widget tools.Widget1
377 connect saveBut.Widget tools.Widget2
379 new LayoutSplit window2
380 connect tabs.Widget window2.Widget1
381 connect tools.Widget window2.Widget2
382 set window2.Proportion "90"
385 set main.WinWidth "1200"
386 set main.Proportion "50"
387 set main.Orientation H
388 connect window1.Widget main.Widget1
389 connect window2.Widget main.Widget2