Beispiel #1
0
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;
	}

}