]> Creatis software - bbtk.git/commitdiff
Add example for the chooser
authorjean-pierre roux <jean-pierre.roux@creatis.insa-lyon.fr>
Thu, 8 Apr 2010 14:52:58 +0000 (14:52 +0000)
committerjean-pierre roux <jean-pierre.roux@creatis.insa-lyon.fr>
Thu, 8 Apr 2010 14:52:58 +0000 (14:52 +0000)
packages/demo/bbs/appli/demoViewing1.bbs
packages/demo/bbs/appli/exampleViewing1.1.bbs [new file with mode: 0644]

index 801003b125bbafe50c8c3ad1de0ca92bd6881664..48bcc8ab09f52e3fdcea9aaaddbce61989cd0e51 100644 (file)
@@ -120,8 +120,6 @@ new DICOMDirReader reader
 new ImageProperties mc
    connect reader.Out mc.In
 
-#print "Image properties : $reader.Out"
-
 #Get number of column (X)
 new GetVectorIntElement gveX
    connect mc.Size gveX.In
diff --git a/packages/demo/bbs/appli/exampleViewing1.1.bbs b/packages/demo/bbs/appli/exampleViewing1.1.bbs
new file mode 100644 (file)
index 0000000..09afff3
--- /dev/null
@@ -0,0 +1,247 @@
+description "3 slicers and a 3D view"
+author "jpr@creatis.insa-lyon.fr"
+category "example"
+
+// To show how easy it is to add smthing
+// =====================================
+
+load vtk
+include wxvtk
+load std
+load itk
+include vtk
+include wx
+load itkvtk
+load gdcmvtk
+
+include wxvtk/boxes/bbSimpleSlicer
+
+new LayoutX4 main
+
+new LayoutLine  upright
+new LayoutLine  upleft
+new LayoutLine  downleft
+new LayoutSplit downright
+   set downright.Proportion 85
+
+connect upright.Widget   main.Widget1
+connect upleft.Widget    main.Widget2
+connect downleft.Widget  main.Widget3
+connect downright.Widget main.Widget4
+
+# Use new box (choose the way you want to select images)
+# -----------------------------------------------------
+load creaImageIO
+new ImagesReader chooser
+
+new ConcatImages reader
+   connect chooser.Out reader.In
+
+// Normally (?) the following lines {== BEGIN == / ==END ==}
+// are now useless; let here as a reminder/example
+// Don't remove them . JPRx
+
+// ==== BEGIN ======================================================
+/* 
+# Dummy way to get only the first image from the chooser
+# ------------------------------------------------------
+load creaImageIO
+new ImagesReader chooser
+
+new GetVectorVtkImageDataElement reader
+   set reader.I 0
+   connect chooser.Out reader.In
+*/
+
+# Here loads 'hola.mhd'
+# ---------------------
+
+# Don't forget to comment out the following 2 lines
+# If you want to check someting else.
+
+/*
+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
+*/
+
+# uncomment next lines to use a vtkgdcmReader
+# -------------------------------------
+/*
+new FileSelector openFileDialog
+new GetInfoGdcmReader 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
+ set openFileDialog.Wildcard  "(*.mhd)|*.mhd"
+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
+*/
+
+// ==== END ======================================================
+
+// We need that to set Sliders sizes
+
+#Get image dimensions, ...
+new ImageProperties mc
+   connect reader.Out mc.In
+
+#Get number of column (X)
+new GetVectorIntElement gveX
+   connect mc.Size gveX.In
+   set gveX.I 0
+
+#Get number of rows (Y)
+new GetVectorIntElement gveY
+   connect mc.Size gveY.In
+   set gveY.I 1
+
+#Get number of planes  (Z)
+new GetVectorIntElement gveZ
+   connect mc.Size gveZ.In
+   set gveZ.I 2
+//print "Dim Z $gveZ.Out"
+
+#Compute the number of the 'middle' slice on X axis
+new Div div0
+  connect   gveX.Out div0.In1
+  set div0.In2 2
+
+#Compute the number of the 'middle' slice on Y axis
+new Div div1
+  connect   gveY.Out div1.In1
+  set div1.In2 2
+
+#Compute the number of the 'middle' slice on Z axis
+new Div div2
+  connect   gveZ.Out div2.In1
+  set div2.In2 2
+
+// For X axis
+new SimpleSlicer viewerUL
+  connect reader.Out viewerUL.In
+  connect viewerUL.Widget upleft.Widget1
+  #initial slice is the middle one
+  connect div0.Out viewerUL.Slice
+  #Slider size is the number of planes
+  connect  gveX.Out viewerUL.SliderSize
+  set viewerUL.SliderReactiveOnTrack 1
+  set viewerUL.Orientation 0
+  set viewerUL.SliderOrientation H
+  set viewerUL.SliderTitle "Planes YZ"
+
+// For Y axis
+new SimpleSlicer viewerUR
+  connect reader.Out viewerUR.In
+  connect viewerUR.Widget upright.Widget1
+  #initial slice is the middle one
+  connect div1.Out viewerUR.Slice
+  #Slider size is the number of planes
+  connect  gveY.Out viewerUR.SliderSize
+  set viewerUR.SliderReactiveOnTrack 1
+  set viewerUR.SliderOrientation H
+  set viewerUR.Orientation 1
+  set viewerUR.SliderTitle "Planes XZ"
+
+// For Z axis
+new SimpleSlicer viewerTD
+  connect reader.Out viewerTD.In
+  connect viewerTD.Widget downleft.Widget1
+  #initial slice is the middle one
+  connect div2.Out viewerTD.Slice
+  #Slider size is the number of planes
+  connect  gveZ.Out viewerTD.SliderSize
+  set viewerTD.SliderReactiveOnTrack 1
+  set viewerTD.SliderOrientation H
+  set viewerTD.Orientation 2
+  set viewerTD.SliderTitle "Planes XY"
+
+//For 3D Viewer
+
+new ImagePlanes planes
+  connect reader.Out planes.In
+
+new Viewer3D viewer
+  connect planes.PlaneX viewer.Obs1
+  connect planes.PlaneY viewer.Obs2
+  connect planes.PlaneZ viewer.Obs3
+
+new CheckBox   chkbox
+  set chkbox.Title "Interpolate Pixels (in '2D' images)"
+  set chkbox.In 1
+  connect chkbox.BoxChange   viewerUL.BoxExecute
+  connect chkbox.BoxChange   viewerUR.BoxExecute
+  connect chkbox.BoxChange   viewerTD.BoxExecute
+
+  connect viewer.Widget downright.Widget1
+  connect chkbox.Widget downright.Widget2
+
+  connect chkbox.Out viewerUL.Interpolate
+  connect chkbox.Out viewerUR.Interpolate
+  connect chkbox.Out viewerTD.Interpolate
+
+set main.WinTitle "demoViewing1"
+exec main
+exec viewerTD