]> Creatis software - creaRigidRegistration.git/blobdiff - PackRecalage/bbs/appli/ViewerMerge2DInteractive.bbs
Changed certain parts of scripts
[creaRigidRegistration.git] / PackRecalage / bbs / appli / ViewerMerge2DInteractive.bbs
index 41341500ea2e1c7107cd777a39bd7d52e3807ee0..ef7331975058f2663abf98a9b66bb92568e29766 100644 (file)
@@ -6,33 +6,43 @@ load creaMaracasVisu
 
 load PackRecalage
 
-include vtk/boxes/bbLoadHola 
-new LoadHola image 
+new FileSelector imageSelector1
+  set imageSelector1.Wildcard "*.mhd"
+new FileSelector imageSelector2
+  set imageSelector2.Wildcard "*.mhd"
+
+new MetaImageReader image
+  connect imageSelector1.Out image.In
+
+new MetaImageReader image2 
+  connect imageSelector2.Out image2.In  
+
+#new Gimmick image
+#new Gimmick image2
 
 #Viewer containing image 1
 
 new LayoutLine v1Layout
 new ViewerNV viewer1
-connect image.Out viewer1.In
-set viewer1.nTypeView "0"
-connect viewer1.Widget v1Layout.Widget1
-
+  connect image.Out viewer1.In
+  set viewer1.nTypeView "0"
+  connect viewer1.Widget v1Layout.Widget1
 
 #Viewer containing image 2
 
 new LayoutLine v2Layout
 new ViewerNV viewer2
-connect image.Out viewer2.In
-set viewer2.nTypeView "0"
-connect viewer2.Widget v2Layout.Widget1
+  connect image2.Out viewer2.In
+  set viewer2.nTypeView "0"
+  connect viewer2.Widget v2Layout.Widget1
 
 #LayoutSplit were the images will be
 
 new LayoutSplit initialImages
-set initialImages.Proportion "50"
-set initialImages.Orientation H
-connect v1Layout.Widget initialImages.Widget1
-connect v2Layout.Widget initialImages.Widget2
+  set initialImages.Proportion "50"
+  set initialImages.Orientation H
+  connect v1Layout.Widget initialImages.Widget1
+  connect v2Layout.Widget initialImages.Widget2
 
 #Layout line that will contain the buttons
 
@@ -49,8 +59,6 @@ new Slider slider
   set slider.ReactiveOnTrack "1"
   connect slider.Widget buttonsLayout.Widget1 
 
-
-
 #Slider were the xScale will be entered
 
 new Slider sliderX
@@ -61,8 +69,6 @@ new Slider sliderX
   set sliderX.ReactiveOnTrack "1"
   connect sliderX.Widget buttonsLayout.Widget2 
 
-
-
 #Slider were the yScale will be entered
 
 new Slider sliderY
@@ -82,26 +88,263 @@ new Transform2DBox transform
   connect sliderX.Out transform.ScaleX
   connect sliderY.Out transform.ScaleY
 
-
-
 new ReSlicerBox reslice1
   connect viewer1.Point reslice1.Origin
   connect transform.Out reslice1.Transform
-  connect image.Out reslice1.In
+  connect image2.Out reslice1.In
 
 new SliceImage slice1
    connect reslice1.Out slice1.In
    set slice1.Z "1"
 
+new Viewer2D viewer2d
+  connect reslice1.Out viewer2d.In
+  set viewer2d.Slice "1"
+
+# Create the reslicers
+
+new SliceImage imgslice1
+new SliceImage imgslice2
+  connect image.Out imgslice1.In
+  connect reslice1.Out imgslice2.In
+
+# Create the visulization box for checkerBoard
+new CheckBoardBox cbb
+  connect imgslice1.Out cbb.In1
+  connect imgslice2.Out cbb.In2
+
+# Create the slider1
+new Slider sdr
+  set sdr.ReactiveOnTrack 1
+  set sdr.Max 50
+  set sdr.In 14
+
+# Create the slider2
+new Slider sdr2
+  set sdr2.ReactiveOnTrack 1
+  set sdr2.Max 50
+  set sdr2.In 14
+
+# Create the ZSlider for the slices
+
+new Slider sdrZ
+  set sdrZ.ReactiveOnTrack 1
+  set sdrZ.Max 50
+  set sdrZ.Title "Z for slice"
+
+  connect sdrZ.Out imgslice1.Z
+  connect sdrZ.Out imgslice2.Z
+  connect sdrZ.BoxChange imgslice1.BoxExecute
+  connect sdrZ.BoxChange imgslice2.BoxExecute
+
+#Create Sliders for WinLevel and ColorLevel
+
+new Slider colorLevel
+  set colorLevel.Min "0"
+  set colorLevel.Max "99"
+  set colorLevel.In "50"
+  set colorLevel.ReactiveOnTrack true
+  set colorLevel.Title "Color Level"
+
+new Slider windowLevel
+  set windowLevel.Min "0"
+  set windowLevel.Max "99"
+  set windowLevel.In "50"
+  set windowLevel.ReactiveOnTrack true
+  set windowLevel.Title "Window Level"
+
+# Connection to viewers
+
+  connect colorLevel.Out viewer1.ColorLevel
+  connect colorLevel.Out viewer2.ColorLevel
+
+  connect windowLevel.Out viewer1.WindowLevel
+  connect windowLevel.Out viewer2.WindowLevel
+
+new MultipleInputs multLevels
+  connect colorLevel.BoxChange multLevels.In1
+  connect windowLevel.BoxChange multLevels.In2
+
+  connect multLevels.BoxChange viewer1.BoxExecute
+  connect multLevels.BoxChange viewer2.BoxExecute
+
+# Create viewer & layout for Checkerboard
+new LayoutSplit checkerBoard
+new LayoutLine ly
+new ViewerNV viewerCH
+  set viewerCH.nTypeView "0"
+  set checkerBoard.Proportion 80
+
+////////////////////////
+#Connecting levels 
+
+  connect colorLevel.Out viewerCH.ColorLevel
+  connect windowLevel.Out viewerCH.WindowLevel
+//////////////////////
+
+
+# Graphical pipeline
+  connect sdr.Out cbb.Cols
+  connect sdr2.Out cbb.Rows
+  connect cbb.Out viewerCH.In
+
+  connect sdr.Widget ly.Widget2
+  connect sdr2.Widget ly.Widget3
+
+  connect viewerCH.Widget checkerBoard.Widget1 
+  connect ly.Widget checkerBoard.Widget2
+
+#Image Transparency view
+
+new TransparencyV2 trans
+  connect imgslice1.Out trans.In1
+  connect imgslice2.Out trans.In2
+
+new Slider sdrP
+  set sdrP.Max "100"
+  set sdrP.Min "0"
+  set sdrP.In "50"
+  set sdrP.ReactiveOnTrack true
+
+  connect sdrP.Out trans.Percent
+
+new ViewerNV transView
+  connect trans.Out transView.In
+  set transView.nTypeView "0"
+
+new LayoutSplit transparency
+  connect transView.Widget transparency.Widget1
+  connect sdrP.Widget transparency.Widget2
+  set transparency.Proportion 80
+
+  connect colorLevel.Out transView.ColorLevel
+  connect windowLevel.Out transView.WindowLevel
+
+#Create Substraction View
+
+new ImageSubstraction imageSub
+  connect imgslice1.Out imageSub.In1
+  connect imgslice2.Out imageSub.In2
+
+new Slider sdrSub1
+  set sdrSub1.In 51
+  set sdrSub1.Max 255
+  set sdrSub1.Min 0
+  set sdrSub1.Title "Upper Zero Level"
+
+new Slider sdrSub2
+  set sdrSub2.In 49
+  set sdrSub2.Max 255
+  set sdrSub2.Min 0
+  set sdrSub2.Title "Lower Zero Level"
+
+  connect sdrSub1.Out imageSub.In3
+  connect sdrSub2.Out imageSub.In4
+
+new ColourSelectorButton colorU
+new ColourSelectorButton colorM
+new ColourSelectorButton colorL
+
+  set colorU.WinTitle "Upper Level Colour"
+  set colorM.WinTitle "Middle Level Colour"
+  set colorL.WinTitle "Lower Level Colour"
+
+  set colorU.In "0"
+  set colorM.In "50,50,50"
+  set colorL.In "1"
+
+  connect colorU.Out imageSub.InU
+  connect colorM.Out imageSub.InM
+  connect colorL.Out imageSub.InL
+
+#Create substraction layout
 
-#new ViewerNV viewer3
-  #connect reslice1.Out viewer3.In
-  #set viewer3.nTypeView "6"
-  #set viewer3.WinWidth "600"
+new Viewer2D subView
+  connect imageSub.Out subView.In
+
+new LayoutSplit substraction
+new LayoutLine lySub
+
+  connect sdrSub1.Widget lySub.Widget1
+  connect sdrSub2.Widget lySub.Widget2
+
+new LayoutLine lySubColor
+
+  set lySubColor.Orientation H
+  connect colorU.Widget lySubColor.Widget1
+  connect colorM.Widget lySubColor.Widget2
+  connect colorL.Widget lySubColor.Widget3
+
+  connect lySubColor.Widget lySub.Widget3
+
+  set substraction.Proportion "70"
+
+  connect subView.Widget substraction.Widget1
+  connect lySub.Widget substraction.Widget2
+
+#Image Switch view
+/*
+new ImageSwitcherBox swt
+  connect imgslice1.Out swt.In1 
+  connect imgslice2.Out swt.In2
+
+new Slider sdrT
+  set sdrT.Max "1000"
+  set sdrT.Min "0"
+  set sdrT.In "500"
+
+  connect sdrT.Out swt.Time
+
+#Image Switch Layout
+
+new Viewer2D viewerS
+  connect swt.Out viewerS.In
+  //set viewerS.nTypeView "0"  
+
+new LayoutLine switch
+  connect viewerS.Widget switch.Widget1
+  connect switch.Widget switch.Widget2
+  connect sdrT.Widget switch.Widget3
+
+  //connect colorLevel.Out viewerS.ColorLevel
+  //connect windowLevel.Out viewerS.WindowLevel
+*/
+
+#Image Convolution View
+
+new ImageConvolution convol1
+  connect imgslice1.Out convol1.In
+
+new ImageConvolution convol2
+  connect imgslice2.Out convol2.In
+
+new Viewer2D viewerConv1
+  connect convol1.Out viewerConv1.In
+  
+new Viewer2D viewerConv2
+  connect convol2.Out viewerConv2.In
+
+new Slider sdrC
+  set sdrC.Max "100"
+  set sdrC.Min "0"
+  set sdrC.In "100"
+  set sdrC.ReactiveOnTrack "true"
+
+  connect sdrC.Out convol1.Factor
+  connect sdrC.Out convol2.Factor
+
+#Layout for convolution
+
+new LayoutSplit lyConvView
+  set lyConvView.Proportion "50"
+  connect viewerConv1.Widget lyConvView.Widget1
+  connect viewerConv2.Widget lyConvView.Widget2
+
+new LayoutSplit convolution
+  set convolution.Proportion "80"
+  connect lyConvView.Widget convolution.Widget1
+  connect sdrC.Widget convolution.Widget2
 
-new Viewer2D viewer3
-  connect reslice1.Out viewer3.In
-  set viewer3.Slice "1"
 
 #Multiple inputs for managing the interaction
 
@@ -111,13 +354,82 @@ new MultipleInputs mult
   connect sliderY.BoxChange mult.In3
   connect viewer1.BoxChange mult.In4
   connect viewer2.BoxChange mult.In5
-  connect mult.BoxChange viewer3.BoxExecute
 
-#new CommandButton botonfinal
-  #set botonfinal.Label "Set Information"
-  #connect botonfinal.Widget buttonsLayout.Widget4
-  #connect botonfinal.BoxChange viewer3.BoxExecute
-  
+# Execution pipeline for checkboard
+
+new MultipleInputs mult2
+  connect ly.BoxChange mult2.In1
+  connect mult.BoxChange mult2.In2
+  connect imgslice1.BoxChange mult2.In3
+  connect imgslice2.BoxChange mult2.In4
+  connect multLevels.BoxChange mult2.In5
+
+connect mult2.BoxChange cbb.BoxExecute
+connect cbb.BoxChange viewerCH.BoxExecute
+
+#Execution pipeline for transparency
+
+new MultipleInputs mult5
+  connect mult2.BoxChange mult5.In1
+  connect sdrP.BoxChange mult5.In2
+
+  connect mult5.BoxChange trans.BoxExecute
+  connect trans.BoxChange transView.BoxExecute
+
+#Execution pipeline for Substraction
+
+new MultipleInputs mult3
+  connect sdrSub1.BoxChange mult3.In1
+  connect sdrSub2.BoxChange mult3.In2
+  connect mult2.BoxChange mult3.In3
+
+new MultipleInputs mult4
+  connect mult3.BoxChange mult4.In1
+  connect colorU.BoxChange mult4.In2
+  connect colorM.BoxChange mult4.In3
+  connect colorL.BoxChange mult4.In4
+
+  connect mult4.BoxChange imageSub.BoxExecute
+  connect imageSub.BoxChange substraction.BoxExecute
+
+#Execution pipeline for switching
+/*
+new MultipleInputs mult6
+  connect sdrT.BoxChange mult6.In1
+  connect mult2.BoxChange mult6.In2
+
+  connect mult6.BoxChange switch.BoxExecute
+  connect switch.BoxChange viewerS.BoxExecute
+*/
+
+#Execution pipeline for convolution
+
+new MultipleInputs mult7
+  connect mult2.BoxChange mult7.In1
+  connect sdrC.BoxChange mult7.In2
+
+  connect mult7.BoxChange convol1.BoxExecute
+  connect mult7.BoxChange convol2.BoxExecute
+
+  connect convol1.BoxChange viewerConv1.BoxExecute
+  connect convol2.BoxChange viewerConv2.BoxExecute
+
+# Button for saving
+
+new CommandButton saveBut
+  set saveBut.Label "Save Image"
+
+new FileSelector fileSave
+  set fileSave.OpenSave "Save"
+  set fileSave.Wildcard "*.mhd"
+
+new MetaImageWriter writSave
+  connect reslice1.Out writSave.In 
+  connect fileSave.Out writSave.Filename
+
+  connect saveBut.BoxChange fileSave.BoxExecute
+  connect fileSave.BoxChange writSave.BoxExecute
+
 #Layout were the images and the buttones will be displayed
 
 new LayoutSplit window1
@@ -127,11 +439,29 @@ new LayoutSplit window1
   connect initialImages.Widget window1.Widget1
   connect buttonsLayout.Widget window1.Widget2
 
+new LayoutTab tabs
+  connect checkerBoard.Widget tabs.Widget1
+  //connect substraction.Widget tabs.Widget2
+  //connect transparency.Widget tabs.Widget3
+  connect convolution.Widget tabs.Widget4
+  //connect switch.Widget tabs.Widget4
+
+new LayoutLine tools
+  connect sdrZ.Widget tools.Widget1
+  connect colorLevel.Widget tools.Widget2
+  connect windowLevel.Widget tools.Widget3
+  connect saveBut.Widget tools.Widget4
+
+new LayoutSplit window2
+ connect tabs.Widget window2.Widget1
+ connect tools.Widget window2.Widget2
+ set window2.Proportion "90"
+
 new LayoutSplit main
   set main.WinWidth "1200"
-  set main.Proportion "100"
+  set main.Proportion "50"
   set main.Orientation H
   connect window1.Widget main.Widget1
-  connect viewer3.Widget main.Widget2
+  connect window2.Widget main.Widget2
 
 exec main
\ No newline at end of file