#include <itkImage.h>
Go to the source code of this file.
Functions | |
template<typename TPixel , unsigned int VImageDimension> | |
void | _mitkItkPictureWrite (itk::Image< TPixel, VImageDimension > *itkImage, const std::string &fileName) |
void _mitkItkPictureWrite | ( | itk::Image< TPixel, VImageDimension > * | itkImage, |
const std::string & | fileName | ||
) |
Definition at line 27 of file mitkItkPictureWrite.cpp.
Referenced by mitk::ImageWriter::WriteByITK().
{ typedef itk::Image< TPixel, VImageDimension > TImageType; typedef itk::Image<unsigned char,3> OutputImage3DType; typedef itk::Image<unsigned char,2> OutputImage2DType; typename itk::RescaleIntensityImageFilter<TImageType, OutputImage3DType>::Pointer rescaler = itk::RescaleIntensityImageFilter<TImageType, OutputImage3DType>::New(); rescaler->SetInput(itkImage); rescaler->SetOutputMinimum(0); rescaler->SetOutputMaximum(255); itk::NumericSeriesFileNames::Pointer numericFileNameWriter = itk::NumericSeriesFileNames::New(); itk::ImageSeriesWriter<OutputImage3DType, OutputImage2DType>::Pointer writer = itk::ImageSeriesWriter<OutputImage3DType, OutputImage2DType >::New(); int numberOfSlices = itkImage->GetLargestPossibleRegion().GetSize()[2]; std::string finalFileName = fileName; std::string::size_type pos = fileName.find_last_of(".",fileName.length()-1); if(pos==std::string::npos) finalFileName.append(".%d.png"); else finalFileName.insert(pos,".%d"); numericFileNameWriter->SetEndIndex(numberOfSlices); numericFileNameWriter->SetSeriesFormat(finalFileName.c_str()); numericFileNameWriter->Modified(); writer->SetInput( rescaler->GetOutput() ); writer->SetFileNames(numericFileNameWriter->GetFileNames()); writer->Update(); }