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