9 //include PackRecalage/boxes/checkerView.bbs
11 //Uncomment the image readers you need
13 /////////////////////////////////////////////////
15 ////////////////////////////////////////////////
17 new FileSelector imageSelector1
18 set imageSelector1.Wildcard "*.mhd"
19 new FileSelector imageSelector2
20 set imageSelector2.Wildcard "*.mhd"
22 new MetaImageReader image
23 connect imageSelector1.Out image.In
25 new MetaImageReader image2
26 connect imageSelector2.Out image2.In
29 ///////////////////////////////////////////////
31 //////////////////////////////////////////////
41 new SliceImage imgslice1
42 new SliceImage imgslice2
43 connect image.Out imgslice1.In
44 connect image2.Out imgslice2.In
46 #Viewer containing image 1
48 new LayoutLine v1Layout
50 connect image.Out viewer1.In
51 set viewer1.nTypeView "0"
52 connect viewer1.Widget v1Layout.Widget1
54 #Viewer containing image 2
56 new LayoutLine v2Layout
58 connect image2.Out viewer2.In
59 set viewer2.nTypeView "0"
60 connect viewer2.Widget v2Layout.Widget1
62 #LayoutSplit were the images will be
64 new LayoutSplit initialImages
65 set initialImages.Proportion "50"
66 set initialImages.Orientation H
67 connect v1Layout.Widget initialImages.Widget1
68 connect v2Layout.Widget initialImages.Widget2
70 #Layout line that will contain the buttons
72 new LayoutLine buttonsLayout
73 set buttonsLayout.Orientation V
75 #Slider were the angle will be entered
78 set slider.Title "Angle"
82 set slider.ReactiveOnTrack "1"
83 connect slider.Widget buttonsLayout.Widget1
85 #Slider were the xScale will be entered
88 set sliderX.Title "% Scale in X"
92 set sliderX.ReactiveOnTrack "1"
93 connect sliderX.Widget buttonsLayout.Widget2
95 #Slider were the yScale will be entered
98 set sliderY.Title "% Scale in Y"
102 set sliderY.ReactiveOnTrack "1"
103 connect sliderY.Widget buttonsLayout.Widget3
105 #Box were the transformation will be made
107 new Transform2DBox transform
108 connect viewer2.Point transform.CenterPoint
109 connect slider.Out transform.Angle
110 connect sliderX.Out transform.ScaleX
111 connect sliderY.Out transform.ScaleY
113 new ReSlicerBox reslice1
114 connect viewer1.Point reslice1.Origin
115 connect transform.Out reslice1.Transform
116 connect imgslice2.Out reslice1.In
118 #Convolution Filter for both of the Images
120 new ImageConvolution convol1
121 connect imgslice1.Out convol1.In
122 new ImageConvolution convol2
123 connect reslice1.Out convol2.In
127 new ImageRecalageProperties properties
128 connect image.Out properties.In
129 connect image.BoxChange properties.BoxExecute
131 # Create the ZSlider for the slices
134 set sdrZ.ReactiveOnTrack 1
136 connect properties.LengthZ sdrZ.Max
137 set sdrZ.Title "Z for slice"
139 connect sdrZ.Out imgslice1.Z
140 connect sdrZ.Out imgslice2.Z
141 connect sdrZ.BoxChange imgslice1.BoxExecute
142 connect sdrZ.BoxChange imgslice2.BoxExecute
144 #Create slider for Convolution Factor
147 set sdrF.ReactiveOnTrack 1
151 set sdrF.Title "Convolution Factor"
153 connect sdrF.Out convol1.Factor
154 connect sdrF.Out convol2.Factor
156 #Create CheckBox for Convolution Filter On/Off
161 connect checkF.Out convol1.On
162 connect checkF.Out convol2.On
164 new MultipleInputs multF
165 connect sdrF.BoxChange multF.In1
166 connect checkF.BoxChange multF.In2
168 connect multF.BoxChange convol1.BoxExecute
169 connect multF.BoxChange convol2.BoxExecute
171 #Create Sliders for WinLevel and ColorLevel
173 new Slider colorLevel
174 set colorLevel.Min "0"
175 connect properties.ColorLevel colorLevel.Max
176 connect properties.MidColorLevel colorLevel.In
177 set colorLevel.ReactiveOnTrack true
178 set colorLevel.Title "Color Level"
180 new Slider windowLevel
181 set windowLevel.Min "0"
182 connect properties.ColorLevel windowLevel.Max
183 connect properties.MidColorLevel windowLevel.In
184 set windowLevel.ReactiveOnTrack true
185 set windowLevel.Title "Window Level"
187 # Connection to viewers
189 connect colorLevel.Out viewer1.ColorLevel
190 connect colorLevel.Out viewer2.ColorLevel
192 connect windowLevel.Out viewer1.WindowLevel
193 connect windowLevel.Out viewer2.WindowLevel
195 new MultipleInputs multLevels
196 connect colorLevel.BoxChange multLevels.In1
197 connect windowLevel.BoxChange multLevels.In2
199 connect multLevels.BoxChange viewer1.BoxExecute
200 connect multLevels.BoxChange viewer2.BoxExecute
204 new CommandButton saveBut
205 set saveBut.Label "Save Image"
207 new FileSelector fileSave
208 set fileSave.OpenSave "Save"
209 set fileSave.Wildcard "*.mhd"
211 new MetaImageWriter writSave
212 connect reslice1.Out writSave.In
213 connect fileSave.Out writSave.Filename
215 connect saveBut.BoxChange fileSave.BoxExecute
216 connect fileSave.BoxChange writSave.BoxExecute
218 ////////////////////Checkboard/////////////////////////
219 # Create the visulization box for checkerBoard
220 new CheckBoardBox cbb
221 connect convol1.Out cbb.In1
222 connect convol2.Out cbb.In2
226 set sdr.ReactiveOnTrack 1
232 set sdr2.ReactiveOnTrack 1
236 # Create viewer & layout for Checkerboard
237 new LayoutSplit checkerBoard
239 new ViewerNV viewerCH
240 set viewerCH.nTypeView "0"
241 set checkerBoard.Proportion 80
245 connect colorLevel.Out viewerCH.ColorLevel
246 connect windowLevel.Out viewerCH.WindowLevel
248 # Graphical pipeline for CheckBoard
249 connect sdr.Out cbb.Cols
250 connect sdr2.Out cbb.Rows
251 connect cbb.Out viewerCH.In
253 connect sdr.Widget ly.Widget2
254 connect sdr2.Widget ly.Widget3
256 connect viewerCH.Widget checkerBoard.Widget1
257 connect ly.Widget checkerBoard.Widget2
258 /////////////end of Checkboard////////////////////
261 new checkerView checkerboard
263 connect convol1.Out checkerboard.In1
264 connect convol2.Out checkerboard.In2
266 connect colorLevel.Out checkerboard.ColorLevel
267 connect windowLevel.Out checkerboard.WindowLevel
269 //////////////Transparency///////////////////////////
270 #Image Transparency view
272 new TransparencyBox trans
273 connect convol1.Out trans.In1
274 connect convol2.Out trans.In2
280 set sdrP.ReactiveOnTrack true
282 connect sdrP.Out trans.Percent
284 new ViewerNV transView
285 connect trans.Out transView.In
286 set transView.nTypeView "0"
288 new LayoutSplit transparency
289 connect transView.Widget transparency.Widget1
290 connect sdrP.Widget transparency.Widget2
291 set transparency.Proportion 80
293 connect colorLevel.Out transView.ColorLevel
294 connect windowLevel.Out transView.WindowLevel
295 ///////////////////end of Transparency////////////////
298 /////////////////Image Switcher//////////////////////
300 new ImageSwitcherBox switch
301 connect convol1.Out switch.In1
302 connect convol2.Out switch.In2
305 connect checkS.Out switch.On
306 set checkS.Title "On"
313 set sdrT.ReactiveOnTrack "True"
315 connect sdrT.Out switch.Time
317 new Viewer2D viewerSwitch
318 connect switch.Out viewerSwitch.In
320 connect sdrT.BoxChange switch.BoxExecute
321 connect switch.BoxChange viewerSwitch.BoxExecute
323 new LayoutSplit switcher
324 set switcher.Proportion "70"
326 new LayoutSplit switchWindow
327 set switchWindow.Proportion "80"
328 connect viewerSwitch.Widget switchWindow.Widget1
330 new LayoutSplit switchTool
331 set switchTool.Orientation H
332 set switchTool.Proportion "50"
333 connect switch.Widget switchTool.Widget1
334 connect checkS.Widget switchTool.Widget2
336 connect switchTool.Widget switchWindow.Widget2
338 connect switchWindow.Widget switcher.Widget1
339 connect sdrT.Widget switcher.Widget2
341 //////////////end of Image Switch///////////////////
343 #Multiple inputs for managing the interaction
345 new MultipleInputs mult
346 connect slider.BoxChange mult.In1
347 connect sliderX.BoxChange mult.In2
348 connect sliderY.BoxChange mult.In3
349 connect viewer1.BoxChange mult.In4
350 connect viewer2.BoxChange mult.In5
352 new MultipleInputs mult2
353 connect multF.BoxChange mult2.In1
354 connect mult.BoxChange mult2.In2
356 # Execution pipeline for checkboard
358 new MultipleInputs mult3
359 connect ly.BoxChange mult3.In1
360 connect mult2.BoxChange mult3.In2
361 connect imgslice1.BoxChange mult3.In3
362 connect imgslice2.BoxChange mult3.In4
363 connect multLevels.BoxChange mult3.In5
365 connect mult3.BoxChange cbb.BoxExecute
366 connect cbb.BoxChange viewerCH.BoxExecute
368 #Execution pipeline for Transparency
370 new MultipleInputs mult4
371 connect mult2.BoxChange mult4.In1
372 connect sdrP.BoxChange mult4.In2
374 connect mult4.BoxChange trans.BoxExecute
375 connect trans.BoxChange transView.BoxExecute
377 ///////////////////////////////////////////////////////////////
382 connect checkerBoard.Widget tabs.Widget1
383 connect transparency.Widget tabs.Widget2
384 connect switcher.Widget tabs.Widget3
386 #Layout where the images and the buttons will be displayed
389 connect sdrZ.Widget tools.Widget1
390 connect colorLevel.Widget tools.Widget2
391 connect windowLevel.Widget tools.Widget3
392 connect saveBut.Widget tools.Widget5
394 new LayoutSplit convolTools
395 set convolTools.Orientation H
396 set convolTools.Proportion "80"
397 connect sdrF.Widget convolTools.Widget1
398 connect checkF.Widget convolTools.Widget2
400 connect convolTools.Widget tools.Widget4
402 new LayoutSplit window1
403 set window1.WinWidth "600"
404 set window1.Proportion "80"
405 set window1.Orientation V
406 connect initialImages.Widget window1.Widget1
407 connect buttonsLayout.Widget window1.Widget2
409 new LayoutSplit window2
410 connect tabs.Widget window2.Widget1
411 connect tools.Widget window2.Widget2
412 set window2.Proportion "90"
415 set main.WinWidth "1200"
416 set main.Proportion "50"
417 set main.Orientation H
418 connect window1.Widget main.Widget1
419 connect window2.Widget main.Widget2