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.Title "Color Level"
148 new Slider windowLevel
149 set windowLevel.Min "0"
150 set windowLevel.Max "99"
151 set windowLevel.In "50"
152 set windowLevel.Title "Window Level"
154 # Connection to viewers
156 connect colorLevel.Out viewer1.ColorLevel
157 connect colorLevel.Out viewer2.ColorLevel
159 connect windowLevel.Out viewer1.WindowLevel
160 connect windowLevel.Out viewer2.WindowLevel
162 new MultipleInputs multLevels
163 connect colorLevel.BoxChange multLevels.In1
164 connect windowLevel.BoxChange multLevels.In2
166 connect multLevels.BoxChange viewer1.BoxExecute
167 connect multLevels.BoxChange viewer2.BoxExecute
169 # Create viewer & layout for Checkerboard
170 new LayoutSplit checkerBoard
172 new ViewerNV viewerCH
173 set viewerCH.nTypeView "0"
174 set checkerBoard.Proportion 80
176 ////////////////////////
179 connect colorLevel.Out viewerCH.ColorLevel
180 connect windowLevel.Out viewerCH.WindowLevel
181 //////////////////////
185 connect sdr.Out cbb.Cols
186 connect sdr2.Out cbb.Rows
187 connect cbb.Out viewerCH.In
189 connect sdr.Widget ly.Widget2
190 connect sdr2.Widget ly.Widget3
192 connect viewerCH.Widget checkerBoard.Widget1
193 connect ly.Widget checkerBoard.Widget2
195 #Image Transparency view
197 new TransparencyV2 trans
198 connect imgslice1.Out trans.In1
199 connect imgslice2.Out trans.In2
206 connect sdrP.Out trans.Percent
208 new ViewerNV transView
209 connect trans.Out transView.In
210 set transView.nTypeView "0"
212 new LayoutSplit transparency
213 connect transView.Widget transparency.Widget1
214 connect sdrP.Widget transparency.Widget2
215 set transparency.Proportion 80
217 connect colorLevel.Out transView.ColorLevel
218 connect windowLevel.Out transView.WindowLevel
220 #Create Substraction View
222 new ImageSubstraction imageSub
223 connect imgslice1.Out imageSub.In1
224 connect imgslice2.Out imageSub.In2
230 set sdrSub1.Title "Upper Zero Level"
236 set sdrSub2.Title "Lower Zero Level"
238 connect sdrSub1.Out imageSub.In3
239 connect sdrSub2.Out imageSub.In4
241 new ColourSelectorButton colorU
242 new ColourSelectorButton colorM
243 new ColourSelectorButton colorL
245 set colorU.WinTitle "Upper Level Colour"
246 set colorM.WinTitle "Middle Level Colour"
247 set colorL.WinTitle "Lower Level Colour"
250 set colorM.In "50,50,50"
253 connect colorU.Out imageSub.InU
254 connect colorM.Out imageSub.InM
255 connect colorL.Out imageSub.InL
257 #Create substraction layout
260 connect imageSub.Out subView.In
262 new LayoutSplit substraction
265 connect sdrSub1.Widget lySub.Widget1
266 connect sdrSub2.Widget lySub.Widget2
268 new LayoutLine lySubColor
270 set lySubColor.Orientation H
271 connect colorU.Widget lySubColor.Widget1
272 connect colorM.Widget lySubColor.Widget2
273 connect colorL.Widget lySubColor.Widget3
275 connect lySubColor.Widget lySub.Widget3
277 set substraction.Proportion "70"
279 connect subView.Widget substraction.Widget1
280 connect lySub.Widget substraction.Widget2
282 #Multiple inputs for managing the interaction
284 new MultipleInputs mult
285 connect slider.BoxChange mult.In1
286 connect sliderX.BoxChange mult.In2
287 connect sliderY.BoxChange mult.In3
288 connect viewer1.BoxChange mult.In4
289 connect viewer2.BoxChange mult.In5
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
298 connect multLevels.BoxChange mult2.In5
300 connect mult2.BoxChange cbb.BoxExecute
301 connect cbb.BoxChange viewerCH.BoxExecute
303 #Execution pipeline for trqnsparency
305 new MultipleInputs mult5
306 connect mult2.BoxChange mult5.In1
307 connect sdrP.BoxChange mult5.In2
309 connect mult5.BoxChange trans.BoxExecute
310 connect trans.BoxChange transView.BoxExecute
312 #Execution pipeline for Substraction
314 new MultipleInputs mult3
315 connect sdrSub1.BoxChange mult3.In1
316 connect sdrSub2.BoxChange mult3.In2
317 connect mult2.BoxChange mult3.In3
319 new MultipleInputs mult4
320 connect mult3.BoxChange mult4.In1
321 connect colorU.BoxChange mult4.In2
322 connect colorM.BoxChange mult4.In3
323 connect colorL.BoxChange mult4.In4
325 connect mult4.BoxChange imageSub.BoxExecute
326 connect imageSub.BoxChange substraction.BoxExecute
330 new CommandButton saveBut
331 set saveBut.Label "Save Image"
333 new FileSelector fileSave
334 set fileSave.OpenSave "Save"
335 set fileSave.Wildcard "*.mhd"
337 new MetaImageWriter writSave
338 connect reslice1.Out writSave.In
339 connect fileSave.Out writSave.Filename
341 connect saveBut.BoxChange fileSave.BoxExecute
342 connect fileSave.BoxChange writSave.BoxExecute
344 #Layout were the images and the buttones will be displayed
346 new LayoutSplit window1
347 set window1.WinWidth "600"
348 set window1.Proportion "80"
349 set window1.Orientation V
350 connect initialImages.Widget window1.Widget1
351 connect buttonsLayout.Widget window1.Widget2
354 connect checkerBoard.Widget tabs.Widget1
355 connect substraction.Widget tabs.Widget2
356 connect transparency.Widget tabs.Widget3
359 connect sdrZ.Widget tools.Widget1
360 connect colorLevel.Widget tools.Widget2
361 connect windowLevel.Widget tools.Widget3
362 connect saveBut.Widget tools.Widget4
364 new LayoutSplit window2
365 connect tabs.Widget window2.Widget1
366 connect tools.Widget window2.Widget2
367 set window2.Proportion "90"
370 set main.WinWidth "1200"
371 set main.Proportion "50"
372 set main.Orientation H
373 connect window1.Widget main.Widget1
374 connect window2.Widget main.Widget2