# --------------------------------------------------------------------- # # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image # pour la SantÈ) # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton # Previous Authors : Laurent Guigues, Jean-Pierre Roux # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil # # This software is governed by the CeCILL-B license under French law and # abiding by the rules of distribution of free software. You can use, # modify and/ or redistribute the software under the terms of the CeCILL-B # license as circulated by CEA, CNRS and INRIA at the following URL # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html # or in the file LICENSE.txt. # # As a counterpart to the access to the source code and rights to copy, # modify and redistribute granted by the license, users are provided only # with a limited warranty and the software's author, the holder of the # economic rights, and the successive licensors have only limited # liability. # # The fact that you are presently reading this means that you have had # knowledge of the CeCILL-B license and that you accept its terms. # ------------------------------------------------------------------------ */ description "3 slicers and a 3D view" author "jpr@creatis.insa-lyon.fr" category "demo" // 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 new LayoutX4 main new LayoutLine upright new LayoutLine upleft new LayoutLine downleft connect upright.Widget main.Widget1 connect upleft.Widget main.Widget2 connect downleft.Widget main.Widget3 # 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 */ //set reader.XSpacing 23.4 //set reader.YSpacing 23.4 //set reader.ZSpacing 35 #print "Image properties : $reader.Out" //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 connect viewer.Widget main.Widget4 // For X axis // ---------- new Viewer2D viewerUL set viewerUL.BoxProcessMode Always connect planes.ImageX viewerUL.In # contains only one slice set viewerUL.Slice 0 connect viewerUL.Widget upleft.Widget1 connect planes.BoxChange viewerUL.BoxExecute print "===============planes.ImageX $planes.ImageX" // For Y axis // ---------- new Viewer2D viewerUR set viewerUR.BoxProcessMode Always connect planes.ImageY viewerUR.In connect viewerUR.Widget upright.Widget1 # contains only one slice set viewerUR.Slice 0 connect planes.BoxChange viewerUR.BoxExecute print "===============planes.ImageY $planes.ImageY" // For Z axis // ---------- new Viewer2D viewerDL set viewerDL.BoxProcessMode Always connect planes.ImageZ viewerDL.In connect viewerDL.Widget downleft.Widget1 # contains only one slice set viewerDL.Slice 0 connect planes.BoxChange viewerDL.BoxExecute print "===============planes.ImageZ $planes.ImageZ" set main.WinTitle "demoViewing3" exec main