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 #Layout for convolution
335 new LayoutSplit lyConvView
336 set lyConvView.Proportion "50"
337 connect viewerConv1.Widget lyConvView.Widget1
338 connect viewerConv2.Widget lyConvView.Widget2
340 new LayoutSplit convolution
341 set convolution.Proportion "80"
342 connect lyConvView.Widget convolution.Widget1
343 connect sdrC.Widget convolution.Widget2
346 #Multiple inputs for managing the interaction
348 new MultipleInputs mult
349 connect slider.BoxChange mult.In1
350 connect sliderX.BoxChange mult.In2
351 connect sliderY.BoxChange mult.In3
352 connect viewer1.BoxChange mult.In4
353 connect viewer2.BoxChange mult.In5
355 # Execution pipeline for checkboard
357 new MultipleInputs mult2
358 connect ly.BoxChange mult2.In1
359 connect mult.BoxChange mult2.In2
360 connect imgslice1.BoxChange mult2.In3
361 connect imgslice2.BoxChange mult2.In4
362 connect multLevels.BoxChange mult2.In5
364 connect mult2.BoxChange cbb.BoxExecute
365 connect cbb.BoxChange viewerCH.BoxExecute
367 #Execution pipeline for transparency
369 new MultipleInputs mult5
370 connect mult2.BoxChange mult5.In1
371 connect sdrP.BoxChange mult5.In2
373 connect mult5.BoxChange trans.BoxExecute
374 connect trans.BoxChange transView.BoxExecute
376 #Execution pipeline for Substraction
378 new MultipleInputs mult3
379 connect sdrSub1.BoxChange mult3.In1
380 connect sdrSub2.BoxChange mult3.In2
381 connect mult2.BoxChange mult3.In3
383 new MultipleInputs mult4
384 connect mult3.BoxChange mult4.In1
385 connect colorU.BoxChange mult4.In2
386 connect colorM.BoxChange mult4.In3
387 connect colorL.BoxChange mult4.In4
389 connect mult4.BoxChange imageSub.BoxExecute
390 connect imageSub.BoxChange substraction.BoxExecute
392 #Execution pipeline for switching
394 new MultipleInputs mult6
395 connect sdrT.BoxChange mult6.In1
396 connect mult2.BoxChange mult6.In2
398 connect mult6.BoxChange switch.BoxExecute
399 connect switch.BoxChange viewerS.BoxExecute
402 #Execution pipeline for convolution
404 new MultipleInputs mult7
405 connect mult2.BoxChange mult7.In1
406 connect sdrC.BoxChange mult7.In2
408 connect mult7.BoxChange convol1.BoxExecute
409 connect mult7.BoxChange convol2.BoxExecute
411 connect convol1.BoxChange viewerConv1.BoxExecute
412 connect convol2.BoxChange viewerConv2.BoxExecute
416 new CommandButton saveBut
417 set saveBut.Label "Save Image"
419 new FileSelector fileSave
420 set fileSave.OpenSave "Save"
421 set fileSave.Wildcard "*.mhd"
423 new MetaImageWriter writSave
424 connect reslice1.Out writSave.In
425 connect fileSave.Out writSave.Filename
427 connect saveBut.BoxChange fileSave.BoxExecute
428 connect fileSave.BoxChange writSave.BoxExecute
430 #Layout were the images and the buttones will be displayed
432 new LayoutSplit window1
433 set window1.WinWidth "600"
434 set window1.Proportion "80"
435 set window1.Orientation V
436 connect initialImages.Widget window1.Widget1
437 connect buttonsLayout.Widget window1.Widget2
440 connect checkerBoard.Widget tabs.Widget1
441 connect substraction.Widget tabs.Widget2
442 connect transparency.Widget tabs.Widget3
443 connect convolution.Widget tabs.Widget4
444 //connect switch.Widget tabs.Widget4
447 connect sdrZ.Widget tools.Widget1
448 connect colorLevel.Widget tools.Widget2
449 connect windowLevel.Widget tools.Widget3
450 connect saveBut.Widget tools.Widget4
452 new LayoutSplit window2
453 connect tabs.Widget window2.Widget1
454 connect tools.Widget window2.Widget2
455 set window2.Proportion "90"
458 set main.WinWidth "1200"
459 set main.Proportion "50"
460 set main.Orientation H
461 connect window1.Widget main.Widget1
462 connect window2.Widget main.Widget2