9 new FileSelector imageSelector1
10 set imageSelector1.Wildcard "*.mhd"
11 new FileSelector imageSelector2
12 set imageSelector2.Wildcard "*.mhd"
14 new MetaImageReader image
15 connect imageSelector1.Out image.In
17 new MetaImageReader image2
18 connect imageSelector2.Out image2.In
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
31 #Viewer containing image 2
33 new LayoutLine v2Layout
35 connect image2.Out viewer2.In
36 set viewer2.nTypeView "0"
37 connect viewer2.Widget v2Layout.Widget1
39 #LayoutSplit were the images will be
41 new LayoutSplit initialImages
42 set initialImages.Proportion "50"
43 set initialImages.Orientation H
44 connect v1Layout.Widget initialImages.Widget1
45 connect v2Layout.Widget initialImages.Widget2
47 #Layout line that will contain the buttons
49 new LayoutLine buttonsLayout
50 set buttonsLayout.Orientation V
52 #Slider were the angle will be entered
55 set slider.Title "Angle"
59 set slider.ReactiveOnTrack "1"
60 connect slider.Widget buttonsLayout.Widget1
62 #Slider were the xScale will be entered
65 set sliderX.Title "% Scale in X"
69 set sliderX.ReactiveOnTrack "1"
70 connect sliderX.Widget buttonsLayout.Widget2
72 #Slider were the yScale will be entered
75 set sliderY.Title "% Scale in Y"
79 set sliderY.ReactiveOnTrack "1"
80 connect sliderY.Widget buttonsLayout.Widget3
83 #Box were the transformation will be made
85 new Transform2DBox transform
86 connect viewer2.Point transform.CenterPoint
87 connect slider.Out transform.Angle
88 connect sliderX.Out transform.ScaleX
89 connect sliderY.Out transform.ScaleY
91 new ReSlicerBox reslice1
92 connect viewer1.Point reslice1.Origin
93 connect transform.Out reslice1.Transform
94 connect image2.Out reslice1.In
97 connect reslice1.Out slice1.In
100 new Viewer2D viewer2d
101 connect reslice1.Out viewer2d.In
102 set viewer2d.Slice "1"
104 # Create the reslicers
106 new SliceImage imgslice1
107 new SliceImage imgslice2
108 connect image.Out imgslice1.In
109 connect reslice1.Out imgslice2.In
111 # Create the visulization box for checkerBoard
112 new CheckBoardBox cbb
113 connect imgslice1.Out cbb.In1
114 connect imgslice2.Out cbb.In2
118 set sdr.ReactiveOnTrack 1
124 set sdr2.ReactiveOnTrack 1
128 # Create the ZSlider for the slices
131 set sdrZ.ReactiveOnTrack 1
133 set sdrZ.Title "Z for slice"
135 connect sdrZ.Out imgslice1.Z
136 connect sdrZ.Out imgslice2.Z
137 connect sdrZ.BoxChange imgslice1.BoxExecute
138 connect sdrZ.BoxChange imgslice2.BoxExecute
140 #Create Sliders for WinLevel and ColorLevel
142 new Slider colorLevel
143 set colorLevel.Min "0"
144 set colorLevel.Max "99"
145 set colorLevel.In "50"
146 set colorLevel.ReactiveOnTrack true
147 set colorLevel.Title "Color Level"
149 new Slider windowLevel
150 set windowLevel.Min "0"
151 set windowLevel.Max "99"
152 set windowLevel.In "50"
153 set windowLevel.ReactiveOnTrack true
154 set windowLevel.Title "Window Level"
156 # Connection to viewers
158 connect colorLevel.Out viewer1.ColorLevel
159 connect colorLevel.Out viewer2.ColorLevel
161 connect windowLevel.Out viewer1.WindowLevel
162 connect windowLevel.Out viewer2.WindowLevel
164 new MultipleInputs multLevels
165 connect colorLevel.BoxChange multLevels.In1
166 connect windowLevel.BoxChange multLevels.In2
168 connect multLevels.BoxChange viewer1.BoxExecute
169 connect multLevels.BoxChange viewer2.BoxExecute
171 # Create viewer & layout for Checkerboard
172 new LayoutSplit checkerBoard
174 new ViewerNV viewerCH
175 set viewerCH.nTypeView "0"
176 set checkerBoard.Proportion 80
178 ////////////////////////
181 connect colorLevel.Out viewerCH.ColorLevel
182 connect windowLevel.Out viewerCH.WindowLevel
183 //////////////////////
187 connect sdr.Out cbb.Cols
188 connect sdr2.Out cbb.Rows
189 connect cbb.Out viewerCH.In
191 connect sdr.Widget ly.Widget2
192 connect sdr2.Widget ly.Widget3
194 connect viewerCH.Widget checkerBoard.Widget1
195 connect ly.Widget checkerBoard.Widget2
197 #Image Transparency view
199 new TransparencyV2 trans
200 connect imgslice1.Out trans.In1
201 connect imgslice2.Out trans.In2
207 set sdrP.ReactiveOnTrack true
209 connect sdrP.Out trans.Percent
211 new ViewerNV transView
212 connect trans.Out transView.In
213 set transView.nTypeView "0"
215 new LayoutSplit transparency
216 connect transView.Widget transparency.Widget1
217 connect sdrP.Widget transparency.Widget2
218 set transparency.Proportion 80
220 connect colorLevel.Out transView.ColorLevel
221 connect windowLevel.Out transView.WindowLevel
223 #Create Substraction View
225 new ImageSubstraction imageSub
226 connect imgslice1.Out imageSub.In1
227 connect imgslice2.Out imageSub.In2
233 set sdrSub1.Title "Upper Zero Level"
239 set sdrSub2.Title "Lower Zero Level"
241 connect sdrSub1.Out imageSub.In3
242 connect sdrSub2.Out imageSub.In4
244 new ColourSelectorButton colorU
245 new ColourSelectorButton colorM
246 new ColourSelectorButton colorL
248 set colorU.WinTitle "Upper Level Colour"
249 set colorM.WinTitle "Middle Level Colour"
250 set colorL.WinTitle "Lower Level Colour"
253 set colorM.In "50,50,50"
256 connect colorU.Out imageSub.InU
257 connect colorM.Out imageSub.InM
258 connect colorL.Out imageSub.InL
260 #Create substraction layout
263 connect imageSub.Out subView.In
265 new LayoutSplit substraction
268 connect sdrSub1.Widget lySub.Widget1
269 connect sdrSub2.Widget lySub.Widget2
271 new LayoutLine lySubColor
273 set lySubColor.Orientation H
274 connect colorU.Widget lySubColor.Widget1
275 connect colorM.Widget lySubColor.Widget2
276 connect colorL.Widget lySubColor.Widget3
278 connect lySubColor.Widget lySub.Widget3
280 set substraction.Proportion "70"
282 connect subView.Widget substraction.Widget1
283 connect lySub.Widget substraction.Widget2
287 new ImageSwitcherBox swt
288 connect imgslice1.Out swt.In1
289 connect imgslice2.Out swt.In2
296 connect sdrT.Out swt.Time
301 connect swt.Out viewerS.In
302 //set viewerS.nTypeView "0"
304 new LayoutLine switch
305 connect viewerS.Widget switch.Widget1
306 connect switch.Widget switch.Widget2
307 connect sdrT.Widget switch.Widget3
309 //connect colorLevel.Out viewerS.ColorLevel
310 //connect windowLevel.Out viewerS.WindowLevel
313 #Image Convolution View
315 new ImageConvolution convol1
316 connect imgslice1.Out convol1.In
318 new ImageConvolution convol2
319 connect imgslice2.Out convol2.In
321 new Viewer2D viewerConv1
322 connect convol1.Out viewerConv1.In
324 new Viewer2D viewerConv2
325 connect convol2.Out viewerConv2.In
331 set sdrC.ReactiveOnTrack "true"
333 connect sdrC.Out convol1.Factor
334 connect sdrC.Out convol2.Factor
336 #Layout for convolution
338 new LayoutSplit lyConvView
339 set lyConvView.Proportion "50"
340 connect viewerConv1.Widget lyConvView.Widget1
341 connect viewerConv2.Widget lyConvView.Widget2
343 new LayoutSplit convolution
344 set convolution.Proportion "80"
345 connect lyConvView.Widget convolution.Widget1
346 connect sdrC.Widget convolution.Widget2
349 #Multiple inputs for managing the interaction
351 new MultipleInputs mult
352 connect slider.BoxChange mult.In1
353 connect sliderX.BoxChange mult.In2
354 connect sliderY.BoxChange mult.In3
355 connect viewer1.BoxChange mult.In4
356 connect viewer2.BoxChange mult.In5
358 # Execution pipeline for checkboard
360 new MultipleInputs mult2
361 connect ly.BoxChange mult2.In1
362 connect mult.BoxChange mult2.In2
363 connect imgslice1.BoxChange mult2.In3
364 connect imgslice2.BoxChange mult2.In4
365 connect multLevels.BoxChange mult2.In5
367 connect mult2.BoxChange cbb.BoxExecute
368 connect cbb.BoxChange viewerCH.BoxExecute
370 #Execution pipeline for transparency
372 new MultipleInputs mult5
373 connect mult2.BoxChange mult5.In1
374 connect sdrP.BoxChange mult5.In2
376 connect mult5.BoxChange trans.BoxExecute
377 connect trans.BoxChange transView.BoxExecute
379 #Execution pipeline for Substraction
381 new MultipleInputs mult3
382 connect sdrSub1.BoxChange mult3.In1
383 connect sdrSub2.BoxChange mult3.In2
384 connect mult2.BoxChange mult3.In3
386 new MultipleInputs mult4
387 connect mult3.BoxChange mult4.In1
388 connect colorU.BoxChange mult4.In2
389 connect colorM.BoxChange mult4.In3
390 connect colorL.BoxChange mult4.In4
392 connect mult4.BoxChange imageSub.BoxExecute
393 connect imageSub.BoxChange substraction.BoxExecute
395 #Execution pipeline for switching
397 new MultipleInputs mult6
398 connect sdrT.BoxChange mult6.In1
399 connect mult2.BoxChange mult6.In2
401 connect mult6.BoxChange switch.BoxExecute
402 connect switch.BoxChange viewerS.BoxExecute
405 #Execution pipeline for convolution
407 new MultipleInputs mult7
408 connect mult2.BoxChange mult7.In1
409 connect sdrC.BoxChange mult7.In2
411 connect mult7.BoxChange convol1.BoxExecute
412 connect mult7.BoxChange convol2.BoxExecute
414 connect convol1.BoxChange viewerConv1.BoxExecute
415 connect convol2.BoxChange viewerConv2.BoxExecute
419 new CommandButton saveBut
420 set saveBut.Label "Save Image"
422 new FileSelector fileSave
423 set fileSave.OpenSave "Save"
424 set fileSave.Wildcard "*.mhd"
426 new MetaImageWriter writSave
427 connect reslice1.Out writSave.In
428 connect fileSave.Out writSave.Filename
430 connect saveBut.BoxChange fileSave.BoxExecute
431 connect fileSave.BoxChange writSave.BoxExecute
433 #Layout were the images and the buttones will be displayed
435 new LayoutSplit window1
436 set window1.WinWidth "600"
437 set window1.Proportion "80"
438 set window1.Orientation V
439 connect initialImages.Widget window1.Widget1
440 connect buttonsLayout.Widget window1.Widget2
443 connect checkerBoard.Widget tabs.Widget1
444 //connect substraction.Widget tabs.Widget2
445 //connect transparency.Widget tabs.Widget3
446 connect convolution.Widget tabs.Widget4
447 //connect switch.Widget tabs.Widget4
450 connect sdrZ.Widget tools.Widget1
451 connect colorLevel.Widget tools.Widget2
452 connect windowLevel.Widget tools.Widget3
453 connect saveBut.Widget tools.Widget4
455 new LayoutSplit window2
456 connect tabs.Widget window2.Widget1
457 connect tools.Widget window2.Widget2
458 set window2.Proportion "90"
461 set main.WinWidth "1200"
462 set main.Proportion "50"
463 set main.Orientation H
464 connect window1.Widget main.Widget1
465 connect window2.Widget main.Widget2