2 # ---------------------------------------------------------------------
4 # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
6 # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
7 # Previous Authors : Laurent Guigues, Jean-Pierre Roux
8 # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
10 # This software is governed by the CeCILL-B license under French law and
11 # abiding by the rules of distribution of free software. You can use,
12 # modify and/ or redistribute the software under the terms of the CeCILL-B
13 # license as circulated by CEA, CNRS and INRIA at the following URL
14 # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
15 # or in the file LICENSE.txt.
17 # As a counterpart to the access to the source code and rights to copy,
18 # modify and redistribute granted by the license, users are provided only
19 # with a limited warranty and the software's author, the holder of the
20 # economic rights, and the successive licensors have only limited
23 # The fact that you are presently reading this means that you have had
24 # knowledge of the CeCILL-B license and that you accept its terms.
25 # ------------------------------------------------------------------------
28 <?xml version="1.0" encoding="iso-8859-1"?>
29 <!--==========================================================================
30 STARTS THE DESCRIPTION OF THE BLACK BOX -->
31 <blackbox name="ImagesChooserDialogBox">
32 <!--========================================================================
33 THE BOX DOCUMENTATION -->
34 <author>cervenansky.frederic@creatis.insa-lyon.fr</author>
36 ImagesChooserDialogBox is a simple application to select file(s) or directory or data from Gimmick database and display them. It handles DICOM, jpg, tif, png, bmp and mhd.
38 <category>image;reader;dicom;</category>
40 <!--========================================================================
41 #include directives to be put in the .h generated
42 There must be one tag per file to include -->
43 <include>creaImageIOWxSimpleDlg.h</include>
44 <!--========================================================================
45 INPUTS/OUTPUTS DECLARATION -->
47 <input name="Title" type="std::string" description="Title of the dialog"/>
50 typedef std::vector<vtkImageData*> OutputImagesType;</PRE>
53 <output name="Out" type="vtkImageData*" description="The selected image"/>
54 <output name="OutImages" type="OutputImagesType" description="Vector of selected images"/>
56 <!--========================================================================
61 creaImageIO::WxSimpleDlg dlg(0,crea::std2wx(bbGetInputTitle()),"localdatabase_Descriptor.dscp","Local Database");
63 if (dlg.getImagesSelected().size()!=0){
64 if(dlg.getImagesSelected().size() ==1)
66 bbSetOutputOut( dlg.getImagesSelected()[0] );
70 // FCY: it will be a big problem if we have several kind of data in the same folder.
72 // creation of a huge vtkImageData!!!!
73 vtkImageData* first = dlg.getImagesSelected()[0];
74 out = vtkImageData::New();
75 out->SetScalarType(first->GetScalarType());
76 out->SetNumberOfScalarComponents(first->GetNumberOfScalarComponents());
78 first->GetWholeExtent(ext);
81 ext[5] = dlg.getImagesSelected().size()-1;
85 ext[5] = ext[5] * dlg.getImagesSelected().size()-1; // to deal with multiframes
90 first->GetDimensions(dim);
91 first->GetSpacing(spac);
92 out->SetSpacing(spac);
93 out->SetDimensions(dim[0], dim[1], dlg.getImagesSelected().size() );
94 out->AllocateScalars();
96 unsigned long imsize = dim[0] * dim[1];
97 imsize = imsize * dim[2] ; // deal with multiframes here
98 // differents formats char , short, etc...
99 // differents components 1..3 ex. jpg ->RGB 3
100 imsize = imsize * first->GetScalarSize() * first->GetNumberOfScalarComponents();
102 std::vector<vtkImageData*>::iterator it;
103 for (it=dlg.getImagesSelected().begin(); it!=dlg.getImagesSelected().end(); ++it)
105 memcpy(out->GetScalarPointer(0,0,slice), (*it)->GetScalarPointer(0,0,0), imsize);
108 //for (it=dlg.getImagesSelected().begin(); it!=dlg.getImagesSelected().end(); ++it)
115 bbSetOutputOut( NULL );
117 bbSetOutputOutImages( dlg.getImagesSelected());
121 <!--======================================================================
122 CONSTRUCTORS / DESTRUCTORS (OPTIONAL) -->