load wx load std load vtk load wxvtk load creaMaracasVisu load PackRecalage 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 #Viewer containing image 2 new LayoutLine v2Layout new ViewerNV viewer2 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 #Layout line that will contain the buttons new LayoutLine buttonsLayout set buttonsLayout.Orientation V #Slider were the angle will be entered new Slider slider set slider.Title "Angle" set slider.In 0 set slider.Min 0 set slider.Max 360 set slider.ReactiveOnTrack "1" connect slider.Widget buttonsLayout.Widget1 #Slider were the xScale will be entered new Slider sliderX set sliderX.Title "% Scale in X" set sliderX.In 100 set sliderX.Min 10 set sliderX.Max 500 set sliderX.ReactiveOnTrack "1" connect sliderX.Widget buttonsLayout.Widget2 #Slider were the yScale will be entered new Slider sliderY set sliderY.Title "% Scale in Y" set sliderY.In 100 set sliderY.Min 10 set sliderY.Max 500 set sliderY.ReactiveOnTrack "1" connect sliderY.Widget buttonsLayout.Widget3 #Box were the transformation will be made new Transform2DBox transform connect viewer2.Point transform.CenterPoint connect slider.Out transform.Angle connect sliderX.Out transform.ScaleX connect sliderY.Out transform.ScaleY new ReSlicerBox reslice1 connect viewer1.Point reslice1.Origin connect transform.Out reslice1.Transform 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.Title "Color Level" new Slider windowLevel set windowLevel.Min "0" set windowLevel.Max "99" set windowLevel.In "50" 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" 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 #Multiple inputs for managing the interaction new MultipleInputs mult connect slider.BoxChange mult.In1 connect sliderX.BoxChange mult.In2 connect sliderY.BoxChange mult.In3 connect viewer1.BoxChange mult.In4 connect viewer2.BoxChange mult.In5 # 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 trqnsparency 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 # 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 set window1.WinWidth "600" set window1.Proportion "80" set window1.Orientation V 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 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 window2.Widget main.Widget2 exec main