[Insight-users] Reading a Dicom Series in ITK and visualizing it in VTK

unity csharp developement.unity at gmail.com
Sun Mar 31 09:37:45 EDT 2013


I am relatively new to ITK and VTK.  I am trying to read a DICOM series
into ITK and i want to visualize it with VTK .

the following code  allows  to read a  DICOM series with  success, now i
want to visualize it with vtk.

int main( int argc, char* argv[] )
{
typedef unsigned short    PixelType;
  const unsigned int      Dimension = 3;
  typedef itk::Image< PixelType, Dimension >         ImageType;

typedef itk::ImageSeriesReader< ImageType >        ReaderType;
  ReaderType::Pointer reader = ReaderType::New();
 typedef itk::GDCMImageIO       ImageIOType;
  ImageIOType::Pointer dicomIO = ImageIOType::New();
  reader->SetImageIO( dicomIO );
  typedef itk::GDCMSeriesFileNames NamesGeneratorType;
  NamesGeneratorType::Pointer nameGenerator = NamesGeneratorType::New();
  nameGenerator->SetUseSeriesDetails( true );
  nameGenerator->AddSeriesRestriction("0008|0021" );
  nameGenerator->SetDirectory(
"C:/Lab/VersionEssaies/MCVS2008Test/DICOM/digest_article" );
  try
    {

    typedef std::vector< std::string >    SeriesIdContainer;
    const SeriesIdContainer & seriesUID = nameGenerator->GetSeriesUIDs();
std::cout << seriesUID.size() << std::endl;
    SeriesIdContainer::const_iterator seriesItr = seriesUID.begin();
    SeriesIdContainer::const_iterator seriesEnd = seriesUID.end();
    while( seriesItr != seriesEnd )
      {
      std::cout << seriesItr->c_str() << std::endl;
      seriesItr++;
    }
    std::string seriesIdentifier;
    if( argc > 3 )
      {
      seriesIdentifier = argv[3];
      }
    else
      {
      seriesIdentifier = seriesUID.begin()->c_str();
           }

std::cout << seriesIdentifier.c_str() << std::endl;

    typedef std::vector< std::string >   FileNamesContainer;
    FileNamesContainer fileNames;
    fileNames = nameGenerator->GetFileNames( seriesIdentifier );
    reader->SetFileNames( fileNames );
   try
     {
     reader->Update();


     }
   catch (itk::ExceptionObject &ex)
     {
      std::cout << ex << std::endl;
      return EXIT_FAILURE;
     }
 }

  catch (itk::ExceptionObject &ex)
    {
    std::cout << ex << std::endl;
    return EXIT_FAILURE;
    }


  return EXIT_SUCCESS;
}

If anyone has an  example that does what i am trying to do
 please let me know. I would really appreciate it.
Thanks in advance.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20130331/d87b5796/attachment.htm>


More information about the Insight-users mailing list