X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=PackRecalage%2Fbbs%2Fappli%2FViewerMerge2DInteractive.bbs;h=ef7331975058f2663abf98a9b66bb92568e29766;hb=162172f821eda98b63af3e8f31b2c6d439ff095a;hp=74a6da96582949a29737194ed679cae3d8f1c6c7;hpb=683ff9386e374db4f94ae5d4c32859cc808c3ad4;p=creaRigidRegistration.git diff --git a/PackRecalage/bbs/appli/ViewerMerge2DInteractive.bbs b/PackRecalage/bbs/appli/ViewerMerge2DInteractive.bbs index 74a6da9..ef73319 100644 --- a/PackRecalage/bbs/appli/ViewerMerge2DInteractive.bbs +++ b/PackRecalage/bbs/appli/ViewerMerge2DInteractive.bbs @@ -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,12 +88,10 @@ 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 @@ -97,11 +101,249 @@ new Viewer2D viewer2d connect reslice1.Out viewer2d.In set viewer2d.Slice "1" -new ViewerNV viewer3 - connect reslice1.Out viewer3.In - set viewer3.nTypeView "6" - set viewer3.WinWidth "600" +# 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 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 #Multiple inputs for managing the interaction @@ -112,14 +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 - connect mult.BoxChange viewer2d.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 @@ -129,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 "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