// ----------------------------------------------------------
# Here loads hola.mhd
+# -------------------
include vtk/boxes/bbLoadHola
new LoadHola reader
+
# uncomment next lines to have a file selector
-#new FileSelector openFileDialog
-#new ImageReader reader
-# connect openFileDialog.Out reader.In
+# --------------------------------------------
+/*
+new FileSelector openFileDialog
+new ImageReader reader
+ connect openFileDialog.Out reader.In
+*/
+
+# uncomment next lines to use Gimmick
+# -----------------------------------
+/*
+load creaImageIO
+new Gimmick reader
+*/
+
+# uncomment next lines to Read a MHD file (and nothing else !)
+# ------------------------------------------------------------
+/*
+new FileSelector openFileDialog
+new MetaImageReader reader
+ connect openFileDialog.Out reader.In
+*/
+
+# uncomment the following lines to read a 3D images stack
+# (only if file name order is meaningfull)
+# -------------------------------------------------------
+/*
+// To choose the directory
+new DirectorySelector ds
+// To get the image names into a vector
+new FilesFromDirectory fd
+// To read all the files, as a bbitk::ImagePointer
+new ImageSeriesReader reader
+// user choosen directory as input
+connect ds.Out fd.In
+set fd.Recursive false
+// list of files as input
+#print "Files found in $ds.Out$\n
+connect fd.Out reader.FileNames
+*/
+
+# uncomment the following lines to read a 3D images stack
+# (if the directory contains a 'XCoherent" Serie)
+# -------------------------------------------------------
+/*
+// To choose the directory
+new DirectorySelector ds
+// To get the image names into a vector
+new FilesFromDirectory fd
+// user choosen directory as input
+connect ds.Out fd.In
+// order the files, computes an accurate ZSpacing
+new GetXCoherentInfoGdcmReader reader
+connect fd.Out reader.In
+*/
+
+# uncomment the following lines to read a 3D images stack
+# (with DICOMDirReader)
+# -------------------------------------------------------
+/*
+include itk/boxes/bbDICOMDirReader
+// To choose the directory
+new DirectorySelector ds
+new DICOMDirReader reader
+ connect ds.Out reader.In
+*/
+
+// We need that to set Sliders sizes
#Get image dimensions, ...
new ImageProperties mc
new Div div2
connect gveZ.Out div2.In1
set div2.In2 2
-
-//
+
+//
// Graphical organization
// ----------------------
set mainSplit.WinHeight 1000
set mainSplit.WinWidth 1400
set mainSplit.WinTitle "Processing / Viewing example (demoFiltering1.bbs) "
-
-
+
new LayoutSplit splitUp
set splitUp.Proportion 38
connect splitUp.Widget mainSplit.Widget1
-
+
new LayoutLine toolLayout
set toolLayout.Orientation H
connect toolLayout.Widget splitUp.Widget1
-
+
new LayoutLine sliderLayout
set sliderLayout.Orientation V
connect sliderLayout.Widget toolLayout.Widget1
set sliceSlider.Title "Slice"
set sliceSlider.ReactiveOnTrack true
connect sliceSlider.Widget sliderLayout.Widget1
-
+
new Slider lowerThresholdSlider
set lowerThresholdSlider.Title "LowerThreshold"
set lowerThresholdSlider.Max 200
set lowerThresholdSlider.In 10
set lowerThresholdSlider.ChangeResolution 1
connect lowerThresholdSlider.Widget sliderLayout.Widget2
-
+
new Slider upperThresholdSlider
set upperThresholdSlider.Title "UpperThreshold"
set upperThresholdSlider.Max 500
set upperThresholdSlider.In 150
- set upperThresholdSlider.ChangeResolution 1
+ set upperThresholdSlider.ChangeResolution 1
connect upperThresholdSlider.Widget sliderLayout.Widget3
new Slider smoothSlider
set smoothSlider.In 3
set smoothSlider.ChangeResolution 1
connect smoothSlider.Widget sliderLayout.Widget4
-
+
new LayoutLine buttonLayout
- set buttonLayout.Orientation H
+ set buttonLayout.Orientation H
connect buttonLayout.Widget toolLayout.Widget2
-
- new ColourSelectorButton colourThreshold
- set colourThreshold.In "1 0 0"
+
+ new ColourSelectorButton colourThreshold
+ set colourThreshold.In "1 0 0"
connect colourThreshold.Widget buttonLayout.Widget1
new ColourSelectorButton colourSmooth
set colourSmooth.In "1 1 0"
- connect colourSmooth.Widget buttonLayout.Widget2
-
+ connect colourSmooth.Widget buttonLayout.Widget2
+
-/*
+/*
new CommandButton refresh
set refresh.Label "Refresh (to be used once at start time)"
connect refresh.Widget buttonLayout.Widget3
-*/
+*/
new LayoutLine layout2D
set layout2D.Orientation H
connect layout2D.Widget splitUp.Widget2
new Viewer2D viewer2DImageOriginal
connect viewer2DImageOriginal.Widget layout2D.Widget1
-
- new Viewer2D viewer2DImageSegmented
+
+ new Viewer2D viewer2DImageSegmented
connect viewer2DImageSegmented.Widget layout2D.Widget2
- new Viewer2D viewer2DImageSmooth
- connect viewer2DImageSmooth.Widget layout2D.Widget3
-
+ new Viewer2D viewer2DImageSmooth
+ connect viewer2DImageSmooth.Widget layout2D.Widget3
+
new LayoutSplit layout3D
set layout3D.Orientation H
set layout3D.Proportion 90
connect layout3D.Widget mainSplit.Widget2
-
+
new LayoutSplit layoutSurfaces
set layoutSurfaces.Orientation H
set layoutSurfaces.Proportion 50
connect layoutSurfaces.Widget layout3D.Widget1
-
+
new Viewer3D viewer3DSurfaceThreshold
connect viewer3DSurfaceThreshold.Widget layoutSurfaces.Widget1
-
+
new Viewer3D viewer3DSurfaceSmooth
- connect viewer3DSurfaceSmooth.Widget layoutSurfaces.Widget2
-
+ connect viewer3DSurfaceSmooth.Widget layoutSurfaces.Widget2
+
new LayoutLine vSliderLayout
connect vSliderLayout.Widget layout3D.Widget2
-
+
new Slider lowerOpacitySlider
set lowerOpacitySlider.Title "Opacity"
- set lowerOpacitySlider.Min 1
+ set lowerOpacitySlider.Min 1
set lowerOpacitySlider.Max 100
set lowerOpacitySlider.In 50
set lowerOpacitySlider.Orientation V
connect lowerOpacitySlider.Widget vSliderLayout.Widget1
-/*
+/*
new Slider upperOpacitySlider
set upperOpacitySlider.Title "UpperOpacity"
set upperOpacitySlider.Max 100
- set upperOpacitySlider.In 100
- set upperOpacitySlider.Orientation V
+ set upperOpacitySlider.In 100
+ set upperOpacitySlider.Orientation V
connect upperOpacitySlider.Widget vSliderLayout.Widget2
*/
-//
+//
// End of Graphical organization
-// -----------------------------
+// -----------------------------
//
// Processing pipeline
set sliceSlider.ChangeResolution 1
// Images 2D
-
+
new BinaryThresholdImageFilter threshold
set threshold.InsideValue 255
set threshold.OutsideValue 0
-
+
connect upperThresholdSlider.Out threshold.UpperThreshold
- connect lowerThresholdSlider.Out threshold.LowerThreshold
+ connect lowerThresholdSlider.Out threshold.LowerThreshold
connect reader.Out threshold.In
-
+
connect threshold.Out viewer2DImageSegmented.In
connect sliceSlider.Out viewer2DImageSegmented.Slice
-
+
new ImageGaussianSmooth smooth
connect threshold.Out smooth.In
connect smoothSlider.Out smooth.StdDevX
connect smoothSlider.Out smooth.StdDevY
connect smoothSlider.Out smooth.StdDevZ
-
+
connect smooth.Out viewer2DImageSmooth.In
connect sliceSlider.Out viewer2DImageSmooth.Slice
-
+
// Planes
new ImagePlanes planes
connect planes.PlaneX viewer3DSurfaceSmooth.Obs1
connect planes.PlaneY viewer3DSurfaceSmooth.Obs2
connect planes.PlaneZ viewer3DSurfaceSmooth.Obs3
-
+
// Surfaces 3D
-
+
new IsoSurfaceExtractor isoextractorThreshold
connect threshold.Out isoextractorThreshold.In
set isoextractorThreshold.Opacity 1
set isoextractorThreshold.Isovalue 100
- connect colourThreshold.Out isoextractorThreshold.Colour
+ connect colourThreshold.Out isoextractorThreshold.Colour
connect isoextractorThreshold.Out viewer3DSurfaceThreshold.In1
-
+
new Div div3
connect lowerOpacitySlider.Out div3.In1
set div3.In2 100
connect smooth.Out isoextractorSmooth.In
connect div3.Out isoextractorSmooth.Opacity
set isoextractorSmooth.Isovalue 200
- connect colourSmooth.Out isoextractorSmooth.Colour
+ connect colourSmooth.Out isoextractorSmooth.Colour
connect isoextractorSmooth.Out viewer3DSurfaceSmooth.In2
-
-// Refresh issues
- new MultipleInputs multInForImageOriginal
- connect sliceSlider.BoxChange multInForImageOriginal.In1
+// Refresh issues
+
+new MultipleInputs multInForImageOriginal
+ connect sliceSlider.BoxChange multInForImageOriginal.In1
# connect refresh.BoxChange multInForImageOriginal.In2
connect upperThresholdSlider.BoxChange multInForSurfaceThreshold.In4
new MultipleInputs multInForSurfaceSmooth
-# connect refresh.BoxChange multInForSurfaceSmooth.In1
- connect lowerOpacitySlider.BoxChange multInForSurfaceSmooth.In1
+# connect refresh.BoxChange multInForSurfaceSmooth.In1
+ connect lowerOpacitySlider.BoxChange multInForSurfaceSmooth.In1
connect colourSmooth.BoxChange multInForSurfaceSmooth.In2
connect lowerThresholdSlider.BoxChange multInForSurfaceSmooth.In3
- connect upperThresholdSlider.BoxChange multInForSurfaceSmooth.In4
+ connect upperThresholdSlider.BoxChange multInForSurfaceSmooth.In4
connect smoothSlider.BoxChange multInForSurfaceSmooth.In5
-
- connect multInForImageOriginal.BoxChange viewer2DImageOriginal.BoxExecute
+
+ connect multInForImageOriginal.BoxChange viewer2DImageOriginal.BoxExecute
connect multInForImageSegmented.BoxChange viewer2DImageSegmented.BoxExecute
connect multInForImageSmooth.BoxChange viewer2DImageSmooth.BoxExecute
-
- connect multInForSurfaceThreshold.BoxChange viewer3DSurfaceThreshold.BoxExecute
- connect multInForSurfaceSmooth.BoxChange viewer3DSurfaceSmooth.BoxExecute
+
+ connect multInForSurfaceThreshold.BoxChange viewer3DSurfaceThreshold.BoxExecute
+ connect multInForSurfaceSmooth.BoxChange viewer3DSurfaceSmooth.BoxExecute
include vtk
include wx
load itkvtk
+load gdcmvtk
include wxvtk/boxes/bbSimpleSlicer
/*
new FileSelector openFileDialog
new ImageReader reader
- connect openFileDialog.Out reader.In
+ connect openFileDialog.Out reader.In
*/
# uncomment next lines to use Gimmick
// user choosen directory as input
connect ds.Out fd.In
set fd.Recursive false
-// list of files as imput
+// list of files as input
#print "Files found in $ds.Out$\n
-connect fd.Out reader.FileNames
+connect fd.Out reader.FileNames
*/
+# uncomment the following lines to read a 3D images stack
+# (if the directory contains a 'XCoherent" Serie)
+# -------------------------------------------------------
+/*
+// To choose the directory
+new DirectorySelector ds
+// To get the image names into a vector
+new FilesFromDirectory fd
+// user choosen directory as input
+connect ds.Out fd.In
+// order the files, computes an accurate ZSpacing
+new GetXCoherentInfoGdcmReader reader
+connect fd.Out reader.In
+*/
+
+# uncomment the following lines to read a 3D images stack
+# (with DICOMDirReader)
+# -------------------------------------------------------
+/*
+include itk/boxes/bbDICOMDirReader
+// To choose the directory
+new DirectorySelector ds
+new DICOMDirReader reader
+ connect ds.Out reader.In
+*/
// We need that to set Sliders sizes
connect gveZ.Out div2.In1
set div2.In2 2
-
// For X axis
new SimpleSlicer viewerUL
connect reader.Out viewerUL.In
//For 3D Viewer
new ImagePlanes planes
- connect reader.Out planes.In
+ connect reader.Out planes.In
new Viewer3D viewer
- connect planes.PlaneX viewer.Obs1
- connect planes.PlaneY viewer.Obs2
- connect planes.PlaneZ viewer.Obs3
+ connect planes.PlaneX viewer.Obs1
+ connect planes.PlaneY viewer.Obs2
+ connect planes.PlaneZ viewer.Obs3
+
+ connect viewer.Widget main.Widget4
- connect viewer.Widget main.Widget4
-
set main.WinTitle "demoViewing1"
exec main
exec viewerTD
include vtk
include wx
load itkvtk
+load gdcmvtk
new LayoutX4 main
/*
new FileSelector openFileDialog
new ImageReader reader
- connect openFileDialog.Out reader.In
+ connect openFileDialog.Out reader.In
*/
# uncomment next lines to use Gimmick
// user choosen directory as input
connect ds.Out fd.In
set fd.Recursive false
-// list of files as imput
+// list of files as input
#print "Files found in $ds.Out$\n
-connect fd.Out reader.FileNames
+connect fd.Out reader.FileNames
*/
+# uncomment the following lines to read a 3D images stack
+# (if the directory contains a 'XCoherent" Serie)
+# -------------------------------------------------------
+/*
+// To choose the directory
+new DirectorySelector ds
+// To get the image names into a vector
+new FilesFromDirectory fd
+// user choosen directory as input
+connect ds.Out fd.In
+// order the files, computes an accurate ZSpacing
+new GetXCoherentInfoGdcmReader reader
+connect fd.Out reader.In
+*/
//set reader.XSpacing 23.4
//set reader.YSpacing 23.4
//For 3D Viewer
new ImagePlanes planes
- connect reader.Out planes.In
+ connect reader.Out planes.In
new Viewer3D viewer
- connect planes.PlaneX viewer.Obs1
- connect planes.PlaneY viewer.Obs2
- connect planes.PlaneZ viewer.Obs3
+ connect planes.PlaneX viewer.Obs1
+ connect planes.PlaneY viewer.Obs2
+ connect planes.PlaneZ viewer.Obs3
- connect viewer.Widget main.Widget4
+ connect viewer.Widget main.Widget4
// For X axis
// ----------
connect viewerUR.Widget upright.Widget1
# contains only one slice
set viewerUR.Slice 0
- connect planes.BoxChange viewerUR.BoxExecute
+ connect planes.BoxChange viewerUR.BoxExecute
print "===============planes.ImageY $planes.ImageY"
set viewerDL.Slice 0
connect planes.BoxChange viewerDL.BoxExecute
- print "===============planes.ImageZ $planes.ImageZ"
-
+ print "===============planes.ImageZ $planes.ImageZ"
+
set main.WinTitle "demoViewing3"
exec main