#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();
}
1.7.2