From: jean-pierre roux Date: Thu, 8 Apr 2010 14:52:58 +0000 (+0000) Subject: Add example for the chooser X-Git-Tag: CREATOOLS.2-0-3~52 X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=9e9e3574c1cb54feaf658bd41db7f415d2c7f4cc;p=bbtk.git Add example for the chooser --- diff --git a/packages/demo/bbs/appli/demoViewing1.bbs b/packages/demo/bbs/appli/demoViewing1.bbs index 801003b..48bcc8a 100644 --- a/packages/demo/bbs/appli/demoViewing1.bbs +++ b/packages/demo/bbs/appli/demoViewing1.bbs @@ -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 index 0000000..09afff3 --- /dev/null +++ b/packages/demo/bbs/appli/exampleViewing1.1.bbs @@ -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