]> Creatis software - creaRigidRegistration.git/blob - PackRecalage/bbs/appli/Recalage2D.bbs
eb4817afdd72fd006dd0b98b76aea634f125826d
[creaRigidRegistration.git] / PackRecalage / bbs / appli / Recalage2D.bbs
1 load wx
2 load std
3 load vtk
4 load wxvtk
5 load creaMaracasVisu
6
7 load PackRecalage
8
9 //include PackRecalage/boxes/checkerView.bbs
10
11 //Uncomment the image readers you need
12
13 /////////////////////////////////////////////////
14 // File Selector
15 ////////////////////////////////////////////////
16 /*
17 new FileSelector imageSelector1
18   set imageSelector1.Wildcard "*.mhd"
19 new FileSelector imageSelector2
20   set imageSelector2.Wildcard "*.mhd"
21
22 new MetaImageReader image
23   connect imageSelector1.Out image.In
24
25 new MetaImageReader image2 
26   connect imageSelector2.Out image2.In  
27 */
28
29 ///////////////////////////////////////////////
30 // Gimmick
31 //////////////////////////////////////////////
32
33 include creaImageIO
34
35 new Gimmick image
36 new Gimmick image2
37
38
39 # Create the slicers
40
41 new SliceImage imgslice1
42 new SliceImage imgslice2
43   connect image.Out imgslice1.In
44   connect image2.Out imgslice2.In
45
46 #Viewer containing image 1
47
48 new LayoutLine v1Layout
49 new ViewerNV viewer1
50   connect image.Out viewer1.In
51   set viewer1.nTypeView "0"
52   connect viewer1.Widget v1Layout.Widget1
53
54 #Viewer containing image 2
55
56 new LayoutLine v2Layout
57 new ViewerNV viewer2
58   connect image2.Out viewer2.In
59   set viewer2.nTypeView "0"
60   connect viewer2.Widget v2Layout.Widget1
61
62 #LayoutSplit were the images will be
63
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
69
70 #Layout line that will contain the buttons
71
72 new LayoutLine buttonsLayout
73   set buttonsLayout.Orientation V
74
75 #Slider were the angle will be entered
76
77 new Slider slider
78   set slider.Title "Angle"
79   set slider.In 0
80   set slider.Min -180
81   set slider.Max 180
82   set slider.ReactiveOnTrack "1"
83   connect slider.Widget buttonsLayout.Widget1 
84
85 #Slider were the xScale will be entered
86
87 new Slider sliderX
88   set sliderX.Title "% Scale in X"
89   set sliderX.In 100
90   set sliderX.Min 10
91   set sliderX.Max 500
92   set sliderX.ReactiveOnTrack "1"
93   connect sliderX.Widget buttonsLayout.Widget2 
94
95 #Slider were the yScale will be entered
96
97 new Slider sliderY
98   set sliderY.Title "% Scale in Y"
99   set sliderY.In 100
100   set sliderY.Min 10
101   set sliderY.Max 500
102   set sliderY.ReactiveOnTrack "1"
103   connect sliderY.Widget buttonsLayout.Widget3
104
105 #Box were the transformation will be made
106
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
112
113 new ReSlicerBox reslice1
114   connect viewer1.Point reslice1.Origin
115   connect transform.Out reslice1.Transform
116   connect imgslice2.Out reslice1.In
117
118 #Convolution Filter for both of the Images
119
120 new ImageConvolution convol1
121   connect imgslice1.Out convol1.In
122 new ImageConvolution convol2
123   connect reslice1.Out convol2.In
124
125 #Image Properties
126
127 new ImageRecalageProperties properties
128   connect image.Out properties.In
129   connect image.BoxChange properties.BoxExecute
130
131 # Create the ZSlider for the slices
132
133 new Slider sdrZ
134   set sdrZ.ReactiveOnTrack 1
135   set sdrZ.Min 0
136   connect properties.LengthZ sdrZ.Max
137   set sdrZ.Title "Z for slice"
138
139   connect sdrZ.Out imgslice1.Z
140   connect sdrZ.Out imgslice2.Z
141   connect sdrZ.BoxChange imgslice1.BoxExecute
142   connect sdrZ.BoxChange imgslice2.BoxExecute
143
144 #Create slider for Convolution Factor
145
146 new Slider sdrF
147   set sdrF.ReactiveOnTrack 1
148   set sdrF.Max "100"
149   set sdrF.Min "0"
150   set sdrF.In "50"
151   set sdrF.Title "Convolution Factor"
152
153   connect sdrF.Out convol1.Factor
154   connect sdrF.Out convol2.Factor
155
156 #Create CheckBox for Convolution Filter On/Off
157
158 new CheckBox checkF
159   set checkF.In "True"
160
161   connect checkF.Out convol1.On
162   connect checkF.Out convol2.On
163
164 new MultipleInputs multF
165   connect sdrF.BoxChange multF.In1
166   connect checkF.BoxChange multF.In2
167
168   connect multF.BoxChange convol1.BoxExecute
169   connect multF.BoxChange convol2.BoxExecute
170
171 #Create Sliders for WinLevel and ColorLevel
172
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"
179
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"
186
187 # Connection to viewers
188
189   connect colorLevel.Out viewer1.ColorLevel
190   connect colorLevel.Out viewer2.ColorLevel
191
192   connect windowLevel.Out viewer1.WindowLevel
193   connect windowLevel.Out viewer2.WindowLevel
194
195 new MultipleInputs multLevels
196   connect colorLevel.BoxChange multLevels.In1
197   connect windowLevel.BoxChange multLevels.In2
198
199   connect multLevels.BoxChange viewer1.BoxExecute
200   connect multLevels.BoxChange viewer2.BoxExecute
201
202 # Button for saving
203
204 new CommandButton saveBut
205   set saveBut.Label "Save Image"
206
207 new FileSelector fileSave
208   set fileSave.OpenSave "Save"
209   set fileSave.Wildcard "*.mhd"
210
211 new MetaImageWriter writSave
212   connect reslice1.Out writSave.In 
213   connect fileSave.Out writSave.Filename
214
215   connect saveBut.BoxChange fileSave.BoxExecute
216   connect fileSave.BoxChange writSave.BoxExecute
217
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
223
224 # Create the slider1
225 new Slider sdr
226   set sdr.ReactiveOnTrack 1
227   set sdr.Max 50
228   set sdr.In 14
229
230 # Create the slider2
231 new Slider sdr2
232   set sdr2.ReactiveOnTrack 1
233   set sdr2.Max 50
234   set sdr2.In 14
235
236 # Create viewer & layout for Checkerboard
237 new LayoutSplit checkerBoard
238 new LayoutLine ly
239 new ViewerNV viewerCH
240   set viewerCH.nTypeView "0"
241   set checkerBoard.Proportion 80
242
243 #Connecting levels 
244
245   connect colorLevel.Out viewerCH.ColorLevel
246   connect windowLevel.Out viewerCH.WindowLevel
247
248 # Graphical pipeline for CheckBoard
249   connect sdr.Out cbb.Cols
250   connect sdr2.Out cbb.Rows
251   connect cbb.Out viewerCH.In
252   
253   connect sdr.Widget ly.Widget2
254   connect sdr2.Widget ly.Widget3
255
256   connect viewerCH.Widget checkerBoard.Widget1 
257   connect ly.Widget checkerBoard.Widget2
258 /////////////end of Checkboard////////////////////
259
260 /*
261 new checkerView checkerboard
262
263   connect convol1.Out checkerboard.In1
264   connect convol2.Out checkerboard.In2
265
266   connect colorLevel.Out checkerboard.ColorLevel
267   connect windowLevel.Out checkerboard.WindowLevel
268 */
269 //////////////Transparency///////////////////////////
270 #Image Transparency view
271
272 new TransparencyBox trans
273   connect convol1.Out trans.In1
274   connect convol2.Out trans.In2
275
276 new Slider sdrP
277   set sdrP.Max "100"
278   set sdrP.Min "0"
279   set sdrP.In "50"
280   set sdrP.ReactiveOnTrack true
281
282   connect sdrP.Out trans.Percent
283
284 new ViewerNV transView
285   connect trans.Out transView.In
286   set transView.nTypeView "0"
287
288 new LayoutSplit transparency
289   connect transView.Widget transparency.Widget1
290   connect sdrP.Widget transparency.Widget2
291   set transparency.Proportion 80
292
293   connect colorLevel.Out transView.ColorLevel
294   connect windowLevel.Out transView.WindowLevel
295 ///////////////////end of Transparency////////////////
296
297
298 /////////////////Image Switcher//////////////////////
299
300 new ImageSwitcherBox switch
301   connect convol1.Out switch.In1 
302   connect convol2.Out switch.In2  
303
304 new CheckBox checkS
305   connect checkS.Out switch.On
306   set checkS.Title "On"
307   set checkS.In "true"
308
309 new Slider sdrT
310   set sdrT.Max "1000"
311   set sdrT.Min "0"
312   set sdrT.In "500"
313   set sdrT.ReactiveOnTrack "True"
314
315 connect sdrT.Out switch.Time
316
317 new Viewer2D viewerSwitch
318   connect switch.Out viewerSwitch.In
319   
320   connect sdrT.BoxChange switch.BoxExecute
321   connect switch.BoxChange viewerSwitch.BoxExecute
322
323 new LayoutSplit switcher
324   set switcher.Proportion "70"
325
326 new LayoutSplit switchWindow
327   set switchWindow.Proportion "80"
328   connect viewerSwitch.Widget switchWindow.Widget1
329
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
335
336   connect switchTool.Widget switchWindow.Widget2
337
338   connect switchWindow.Widget switcher.Widget1 
339   connect sdrT.Widget switcher.Widget2
340
341 //////////////end of Image Switch///////////////////
342
343 #Multiple inputs for managing the interaction
344
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
351
352 new MultipleInputs mult2
353   connect multF.BoxChange mult2.In1
354   connect mult.BoxChange mult2.In2
355
356 # Execution pipeline for checkboard
357
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
364
365   connect mult3.BoxChange cbb.BoxExecute
366   connect cbb.BoxChange viewerCH.BoxExecute
367
368 #Execution pipeline for Transparency
369
370 new MultipleInputs mult4
371   connect mult2.BoxChange mult4.In1
372   connect sdrP.BoxChange mult4.In2
373
374   connect mult4.BoxChange trans.BoxExecute
375   connect trans.BoxChange transView.BoxExecute
376
377 ///////////////////////////////////////////////////////////////
378
379 #Layout for the tabs
380
381 new LayoutTab tabs
382   connect checkerBoard.Widget tabs.Widget1
383   connect transparency.Widget tabs.Widget2
384   connect switcher.Widget tabs.Widget3
385
386 #Layout where the images and the buttons will be displayed
387
388 new LayoutLine tools
389   connect sdrZ.Widget tools.Widget1
390   connect colorLevel.Widget tools.Widget2
391   connect windowLevel.Widget tools.Widget3
392   connect saveBut.Widget tools.Widget5
393
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
399
400   connect convolTools.Widget tools.Widget4
401
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
408
409 new LayoutSplit window2
410  connect tabs.Widget window2.Widget1
411  connect tools.Widget window2.Widget2
412  set window2.Proportion "90"
413
414 new LayoutSplit main
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
420
421 exec main
422