1 description "creatisRecalage::Recalage Rigid 2D. "
3 author "info-dev@creatis.insa-lyon.fr"
13 //include PackRecalage/boxes/checkerView.bbs
15 //Uncomment the image readers you need
17 /////////////////////////////////////////////////
19 ////////////////////////////////////////////////
21 new FileSelector imageSelector1
22 set imageSelector1.Wildcard "*.mhd"
23 new FileSelector imageSelector2
24 set imageSelector2.Wildcard "*.mhd"
26 new MetaImageReader image
27 connect imageSelector1.Out image.In
29 new MetaImageReader image2
30 connect imageSelector2.Out image2.In
33 ///////////////////////////////////////////////
35 //////////////////////////////////////////////
42 ///////////////////////////////////////////////
44 //////////////////////////////////////////////
48 new SliceImage imgslice1
49 new SliceImage imgslice2
50 connect image.Out imgslice1.In
51 connect image2.Out imgslice2.In
53 ////////////////////////////////////////////
55 ///////////////////////////////////////////
57 #Viewer containing image 1
59 new LayoutLine v1Layout
61 connect image.Out viewer1.In
62 set viewer1.nTypeView "0"
63 connect viewer1.Widget v1Layout.Widget1
65 #Viewer containing image 2
67 new LayoutLine v2Layout
69 connect image2.Out viewer2.In
70 set viewer2.nTypeView "0"
71 connect viewer2.Widget v2Layout.Widget1
73 //////////////////////////////////////
74 //Layouts for the images
75 //////////////////////////////////////
77 #LayoutSplit were the images will be
79 new LayoutSplit initialImages
80 set initialImages.Proportion "50"
81 set initialImages.Orientation H
82 connect v1Layout.Widget initialImages.Widget1
83 connect v2Layout.Widget initialImages.Widget2
85 ////////////////////////////////////////////////////////////////
86 //Information Sliders and Buttons for the Recalage
87 ///////////////////////////////////////////////////////////////
89 #Layout line that will contain the buttons
91 new LayoutLine buttonsLayout
92 set buttonsLayout.Orientation V
94 #Slider were the angle will be entered
97 set slider.Title "Angle"
101 set slider.ReactiveOnTrack "1"
102 connect slider.Widget buttonsLayout.Widget1
104 #Slider were the xScale will be entered
107 set sliderX.Title "% Scale in X"
111 set sliderX.ReactiveOnTrack "1"
112 connect sliderX.Widget buttonsLayout.Widget2
114 #Slider were the yScale will be entered
117 set sliderY.Title "% Scale in Y"
121 set sliderY.ReactiveOnTrack "1"
122 connect sliderY.Widget buttonsLayout.Widget3
124 //////////////////////////////////////////////////
125 //Transformation Boxes
126 //////////////////////////////////////////////////
128 #Box were the transformation will be made
130 new Transform2DBox transform
131 connect viewer2.Point transform.CenterPoint
132 connect slider.Out transform.Angle
133 connect sliderX.Out transform.ScaleX
134 connect sliderY.Out transform.ScaleY
136 new ReSlicerBox reslice1
137 connect viewer1.Point reslice1.Origin
138 connect transform.Out reslice1.Transform
139 connect imgslice2.Out reslice1.In
141 //////////////////////////////////////////////////
143 //////////////////////////////////////////////////
145 #Convolution Filter for both of the Images
147 new ImageConvolution convol1
148 connect imgslice1.Out convol1.In
149 new ImageConvolution convol2
150 connect reslice1.Out convol2.In
152 ////////////////////////////////////////////////
153 //Recalage Properties
154 ////////////////////////////////////////////////
158 new ImageRecalageProperties properties
159 connect image.Out properties.In
160 connect image.BoxChange properties.BoxExecute
162 # Create the ZSlider for the slices
165 set sdrZ.ReactiveOnTrack 1
167 connect properties.LengthZ sdrZ.Max
168 set sdrZ.Title "Z for slice"
170 connect sdrZ.Out imgslice1.Z
171 connect sdrZ.Out imgslice2.Z
172 connect sdrZ.BoxChange imgslice1.BoxExecute
173 connect sdrZ.BoxChange imgslice2.BoxExecute
175 #Create slider for Convolution Factor
178 set sdrF.ReactiveOnTrack 1
182 set sdrF.Title "Convolution Factor"
184 connect sdrF.Out convol1.Factor
185 connect sdrF.Out convol2.Factor
187 #Create CheckBox for Convolution Filter On/Off
192 connect checkF.Out convol1.On
193 connect checkF.Out convol2.On
195 new MultipleInputs multF
196 connect sdrF.BoxChange multF.In1
197 connect checkF.BoxChange multF.In2
199 connect multF.BoxChange convol1.BoxExecute
200 connect multF.BoxChange convol2.BoxExecute
202 #Create Sliders for WinLevel and ColorLevel
204 new Slider colorLevel
205 set colorLevel.Min "0"
206 connect properties.ColorLevel colorLevel.Max
207 connect properties.MidColorLevel colorLevel.In
208 set colorLevel.ReactiveOnTrack true
209 set colorLevel.Title "Color Level"
211 new Slider windowLevel
212 set windowLevel.Min "0"
213 connect properties.ColorLevel windowLevel.Max
214 connect properties.MidColorLevel windowLevel.In
215 set windowLevel.ReactiveOnTrack true
216 set windowLevel.Title "Window Level"
218 # Connection to viewers
220 connect colorLevel.Out viewer1.ColorLevel
221 connect colorLevel.Out viewer2.ColorLevel
223 connect windowLevel.Out viewer1.WindowLevel
224 connect windowLevel.Out viewer2.WindowLevel
226 new MultipleInputs multLevels
227 connect colorLevel.BoxChange multLevels.In1
228 connect windowLevel.BoxChange multLevels.In2
230 connect multLevels.BoxChange viewer1.BoxExecute
231 connect multLevels.BoxChange viewer2.BoxExecute
235 new CommandButton saveBut
236 set saveBut.Label "Save Image"
238 new FileSelector fileSave
239 set fileSave.OpenSave "Save"
240 set fileSave.Wildcard "*.mhd"
242 new MetaImageWriter writSave
243 connect reslice1.Out writSave.In
244 connect fileSave.Out writSave.Filename
246 connect saveBut.BoxChange fileSave.BoxExecute
247 connect fileSave.BoxChange writSave.BoxExecute
249 ////////////////////Checkboard/////////////////////////
250 # Create the visulization box for checkerBoard
251 new CheckBoardBox cbb
252 connect convol1.Out cbb.In1
253 connect convol2.Out cbb.In2
257 set sdr.ReactiveOnTrack 1
263 set sdr2.ReactiveOnTrack 1
267 # Create viewer & layout for Checkerboard
268 new LayoutSplit checkerBoard
270 new ViewerNV viewerCH
271 set viewerCH.nTypeView "0"
272 set checkerBoard.Proportion 80
276 connect colorLevel.Out viewerCH.ColorLevel
277 connect windowLevel.Out viewerCH.WindowLevel
279 # Graphical pipeline for CheckBoard
280 connect sdr.Out cbb.Cols
281 connect sdr2.Out cbb.Rows
282 connect cbb.Out viewerCH.In
284 connect sdr.Widget ly.Widget2
285 connect sdr2.Widget ly.Widget3
287 connect viewerCH.Widget checkerBoard.Widget1
288 connect ly.Widget checkerBoard.Widget2
289 /////////////end of Checkboard////////////////////
291 //////////////Transparency///////////////////////////
292 #Image Transparency view
294 new TransparencyBox trans
295 connect convol1.Out trans.In1
296 connect convol2.Out trans.In2
302 set sdrP.ReactiveOnTrack true
304 connect sdrP.Out trans.Percent
306 new ViewerNV transView
307 connect trans.Out transView.In
308 set transView.nTypeView "0"
310 new LayoutSplit transparency
311 connect transView.Widget transparency.Widget1
312 connect sdrP.Widget transparency.Widget2
313 set transparency.Proportion 80
315 connect colorLevel.Out transView.ColorLevel
316 connect windowLevel.Out transView.WindowLevel
317 ///////////////////end of Transparency////////////////
320 /////////////////Image Switcher//////////////////////
322 new ImageSwitcherBox switch
323 connect convol1.Out switch.In1
324 connect convol2.Out switch.In2
327 connect checkS.Out switch.On
328 set checkS.Title "On"
335 set sdrT.ReactiveOnTrack "True"
337 connect sdrT.Out switch.Time
339 new Viewer2D viewerSwitch
340 connect switch.Out viewerSwitch.In
342 connect sdrT.BoxChange switch.BoxExecute
343 connect switch.BoxChange viewerSwitch.BoxExecute
345 new LayoutSplit switcher
346 set switcher.Proportion "70"
348 new LayoutSplit switchWindow
349 set switchWindow.Proportion "80"
350 connect viewerSwitch.Widget switchWindow.Widget1
352 new LayoutSplit switchTool
353 set switchTool.Orientation H
354 set switchTool.Proportion "50"
355 connect switch.Widget switchTool.Widget1
356 connect checkS.Widget switchTool.Widget2
358 connect switchTool.Widget switchWindow.Widget2
360 connect switchWindow.Widget switcher.Widget1
361 connect sdrT.Widget switcher.Widget2
363 //////////////end of Image Switch///////////////////
365 #Multiple inputs for managing the interaction
367 new MultipleInputs mult
368 connect slider.BoxChange mult.In1
369 connect sliderX.BoxChange mult.In2
370 connect sliderY.BoxChange mult.In3
371 connect viewer1.BoxChange mult.In4
372 connect viewer2.BoxChange mult.In5
374 new MultipleInputs mult2
375 connect multF.BoxChange mult2.In1
376 connect mult.BoxChange mult2.In2
378 # Execution pipeline for checkboard
380 new MultipleInputs mult3
381 connect ly.BoxChange mult3.In1
382 connect mult2.BoxChange mult3.In2
383 connect imgslice1.BoxChange mult3.In3
384 connect imgslice2.BoxChange mult3.In4
385 connect multLevels.BoxChange mult3.In5
387 connect mult3.BoxChange cbb.BoxExecute
388 connect cbb.BoxChange viewerCH.BoxExecute
390 #Execution pipeline for Transparency
392 new MultipleInputs mult4
393 connect mult2.BoxChange mult4.In1
394 connect sdrP.BoxChange mult4.In2
396 connect mult4.BoxChange trans.BoxExecute
397 connect trans.BoxChange transView.BoxExecute
399 ///////////////////////////////////////////////////////////////
404 connect switcher.Widget tabs.Widget1
405 connect checkerBoard.Widget tabs.Widget2
406 connect transparency.Widget tabs.Widget3
408 #Layout where the images and the buttons will be displayed
411 connect sdrZ.Widget tools.Widget1
412 connect colorLevel.Widget tools.Widget2
413 connect windowLevel.Widget tools.Widget3
414 connect saveBut.Widget tools.Widget5
416 new LayoutSplit convolTools
417 set convolTools.Orientation H
418 set convolTools.Proportion "80"
419 connect sdrF.Widget convolTools.Widget1
420 connect checkF.Widget convolTools.Widget2
422 connect convolTools.Widget tools.Widget4
424 new LayoutSplit window1
425 set window1.WinWidth "600"
426 set window1.Proportion "80"
427 set window1.Orientation V
428 connect initialImages.Widget window1.Widget1
429 connect buttonsLayout.Widget window1.Widget2
431 new LayoutSplit window2
432 connect tabs.Widget window2.Widget1
433 connect tools.Widget window2.Widget2
434 set window2.Proportion "90"
437 set main.WinWidth "1200"
438 set main.Proportion "50"
439 set main.Orientation H
440 connect window1.Widget main.Widget1
441 connect window2.Widget main.Widget2