[Insight-users] Re : Output dicom series in new directory

Luis Ibanez luis.ibanez at kitware.com
Tue Jun 30 17:05:42 EDT 2009


Hi Syrine,


      The DICOMImageIO class is obsolete.


Please use the code illustrated in the Examples:


      Insight/Examples/IO/
         DicomSeriesReadImageWrite2.cxx
         ImageReadDicomSeriesWrite.cxx
         DicomSeriesReadSeriesWrite.cxx


Regards,


     Luis


---------------------
Syrine Sahmim wrote:
> this is my code and you must verify your cmake file
> #include "itkImageSeriesReader.h"
> #include "itkDICOMImageIO2.h"
> #include "itkDICOMSeriesFileNames.h"
> #include "itkImageFileWriter.h"
> 
> int main( int argc, char* argv[] )
> {
> /*
>   if( argc < 3 )
>     {
>     std::cerr << "Usage: " << argv[0] << " DicomDirectory  
> outputFileName  [seriesName]" << std::endl;
>     return EXIT_FAILURE;
>     }
> */
> 
>     argc = 2;
>     argv[1] = "dicom";
>     argv[2] = "dicomMRA.hdr";
>    
>   typedef itk::Image<short,3>            ImageType;
>   typedef itk::ImageSeriesReader< ImageType >     ReaderType;
> 
>   itk::DICOMImageIO2::Pointer dicomIO = itk::DICOMImageIO2::New();
> 
>   // Get the DICOM filenames from the directory
>   itk::DICOMSeriesFileNames::Pointer nameGenerator = 
> itk::DICOMSeriesFileNames::New();
>   nameGenerator->SetDirectory( argv[1] );
>  
> 
>   try
>     {
>     typedef std::vector<std::string> seriesIdContainer;
>     const seriesIdContainer & seriesUID = nameGenerator->GetSeriesUIDs();
> 
>     seriesIdContainer::const_iterator seriesItr = seriesUID.begin();
>     seriesIdContainer::const_iterator seriesEnd = seriesUID.end();
>  
>     std::cout << std::endl << "The directory: " << std::endl;
>     std::cout << std::endl << argv[1] << std::endl << std::endl;
>     std::cout << "Contains the following DICOM Series: ";
>     std::cout << std::endl << std::endl;
> 
>     while( seriesItr != seriesEnd )
>       {
>       std::cout << seriesItr->c_str() << std::endl;
>       seriesItr++;
>       }
>  
>     std::cout << std::endl << std::endl;
>     std::cout << "Now reading series: " << std::endl << std::endl;
> 
>     typedef std::vector<std::string> fileNamesContainer;
>     fileNamesContainer fileNames;
> 
>     if( argc < 4 ) // If no optional third argument
>       {
>       std::cout << seriesUID.begin()->c_str() << std::endl;
>       fileNames = nameGenerator->GetFileNames();
>       }
>     else
>       {
>       std::cout << argv[3] << std::endl;
>       fileNames = nameGenerator->GetFileNames( argv[3] );
>       }
>     std::cout << std::endl << std::endl;
> 
>     ReaderType::Pointer reader = ReaderType::New();
>     reader->SetFileNames( fileNames );
>     reader->SetImageIO( dicomIO );
> 
>     try
>       {
>       reader->Update();
>       }
>     catch (itk::ExceptionObject &ex)
>       {
>       std::cout << ex << std::endl;
>       return EXIT_FAILURE;
>       }
> 
>     typedef itk::ImageFileWriter< ImageType > WriterType;
>     WriterType::Pointer writer = WriterType::New();
> 
>     std::cout  << "Writing the image as " << std::endl << std::endl;
>     std::cout  << argv[2] << std::endl << std::endl;
> 
>     writer->SetFileName( argv[2] );
>    
>     writer->SetInput( reader->GetOutput() );
> 
>     try
>       {
>       writer->Update();
>       }
>     catch (itk::ExceptionObject &ex)
>       {
>       std::cout << ex;
>       return EXIT_FAILURE;
>       }
>     }
>   catch (itk::ExceptionObject &ex)
>     {
>     std::cout << ex;
>     return EXIT_FAILURE;
>     }
> 
>   return EXIT_SUCCESS;
> 
> }
> 
> i hope that will help you. tell wether your program goes on or not
> 
> 
> 
> 
> 
> ------------------------------------------------------------------------
> *De :* Ezequiel Geremia <t-egerem at microsoft.com>
> *À :* Mathieu Malaterre <mathieu.malaterre at gmail.com>
> *Cc :* "insight-users at itk.org" <insight-users at itk.org>
> *Envoyé le :* Mardi, 23 Juin 2009, 16h18mn 52s
> *Objet :* Re: [Insight-users] Output dicom series in new directory
> 
> No exception is thrown. The output dicom series are not created in the 
> requested Directory.
> 
> Moreover Syrine, there is not a matter of reading nrrd format, it is 
> just a matter of outputting generated files in the right directory.
> 
> If already have had that problem and resolve it you can send me the file 
> so that I can compare it with mine. It will help me solving that issue.
> 
> Thanks,
> 
> Ezequiel
> 
> -----Original Message-----
> From: Mathieu Malaterre [mailto:mathieu.malaterre at gmail.com 
> <mailto:mathieu.malaterre at gmail.com>]
> Sent: 23 June 2009 16:11
> To: Ezequiel Geremia
> Cc: insight-users at itk.org <mailto:insight-users at itk.org>
> Subject: Re: [Insight-users] Output dicom series in new directory
> 
> On Tue, Jun 23, 2009 at 4:45 PM, Ezequiel Geremia<t-egerem at microsoft.com 
> <mailto:t-egerem at microsoft.com>> wrote:
>  > Hi insight-users,
>  >
>  > I wrote a code inspired from itkSoftwraeGuide to convert nrrd files 
> into dicom series.
>  >
>  > When running the executable on windows vista, the latter does not 
> output the dicom slices in the directory specified through
>  >
>  > typedef itk::GDCMSeriesFileNames NamesGeneratorType;
>  > NamesGeneratorType::Pointer namesGenerator = NamesGeneratorType::New();
>  >
>  > namesGenerator->SetOutputDirectory( outputDirectory );
>  >
>  > Do you have an idea on how to resolve that issue ?
> 
> I have absolutely no idea. But if you send the output of the
> executable, I might help. just print the exception that's thrown
> during the call to Update() (or Write()) and send it to the list.
> 
> 2cts
> 
> -- 
> Mathieu
> 
> _____________________________________
> Powered by www.kitware.com <http://www.kitware.com>
> 
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
> 
> Please keep messages on-topic and check the ITK FAQ at: 
> http://www.itk.org/Wiki/ITK_FAQ
> 
> Follow this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-users
> 
> 
> ------------------------------------------------------------------------
> 
> _____________________________________
> Powered by www.kitware.com
> 
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
> 
> Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ
> 
> Follow this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-users


More information about the Insight-users mailing list