void writeLabelImage( LabeledImageType::Pointer image, const std::string &fname) { try { ColorMapFilterType::Pointer colormapper = ColorMapFilterType::New(); colormapper->SetInput( image ); colormapper->Update(); RGBImageType::ConstPointer colorImage = colormapper->GetOutput(); colormapper = NULL; typedef itk::Image< RGBPixelType, 2 > OutputImage2DType; typedef itk::ImageSeriesWriter< RGBImageType, OutputImage2DType > WriterType; WriterType::Pointer writer = WriterType::New(); typedef itk::NumericSeriesFileNames NamesGeneratorType; NamesGeneratorType::Pointer nameGenerator = NamesGeneratorType::New(); nameGenerator->SetSeriesFormat( fname.c_str() ); nameGenerator->SetStartIndex( 1 ); nameGenerator->SetEndIndex( colorImage->GetBufferedRegion().GetSize()[2] ); writer->SetFileNames( nameGenerator->GetFileNames() ); writer->SetInput( colorImage ); writer->Update(); } catch( itk::ExceptionObject & exp ) { std::cerr << "Exception caught !" << std::endl; std::cerr << exp << std::endl; } }