description "Reads and image file / stack of image files, writes it as a MHD file" author "jpr@creatis.insa-lyon.fr" category "tool, read/write" load vtk //include wxvtk load std load itk include vtk include wx load itkvtk new LayoutLine main # Use new box (choose the way you want to select images) # ----------------------------------------------------- load creaImageIO new ImagesReader chooser # Concatenate all the supposed-to-be consistent 2D images into a single vtkImageData # WARNING : File names alphabetical order is suposed to be meaningful ... 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 ====================================================== new CommandButton cb1 connect cb1.Widget main.Widget1 set cb1.Label "1) Select File" set cb1.WinDialog true connect cb1.BoxChange reader.BoxExecute new CommandButton cb connect cb.Widget main.Widget2 set cb.Label "2) Write (no '.mhd' extention needed!" set cb.WinDialog true # Choose where you want to write # ------------------------------ new FileSelector fileDialog set fileDialog.OpenSave Save set fileDialog.Wildcard "*.mhd" new MakeFileName mfn connect fileDialog.Out mfn.File set mfn.Extent ".mhd" # Write! # ------ new MetaImageWriter writer connect reader.Out writer.In connect mfn.Out writer.Filename connect cb.BoxChange writer.BoxExecute exec main