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