#include <itkCastImageFilter.h>
#include <mitkImageToItk.h>
#include "mitkImageCast.h"
Go to the source code of this file.
Defines | |
#define | _calculateItkPipelineFunction(result, mitksource, itkpipelinefunction, type, dimension) |
#define | ItkFunctionMultiplexer(result, mitkSourceImage, itkfunction) |
#define | _calculateMitkToItkPipelineFunction(resultItkImage, resultItkImageType, mitksource, itkpipelinefunction, type, dimension) |
#define | AllInputDimensionMitkToItkFunctionMultiplexer(resultItkImage, resultItkImageType, mitkSourceImage, itkfunction) |
multiplexes a mitk image to an itkFilter with inputs of dimensions 2-4 and all data types (the itkFilter must allow to do this!). | |
#define | FixedInputDimensionMitkToItkFunctionMultiplexer(resultItkImage, resultItkImageType, mitkSourceImage, inputDimension, itkfunction) |
multiplexes a mitk image to an itkFilter with inputs of fixed dimensions inputDimension and all data types (the itkFilter must allow to do this!). | |
Functions | |
template<typename ItkInputImageType , typename ItkOutputImageType > | |
itk::ImageSource < ItkOutputImageType > ::Pointer | MakeCastImageFilter (ItkInputImageType *inputImage) |
method creates a cast image filter and casts the image of ItkInputImageType to type ItkOutputImageType. The method needs to be called via the mitkImageToItkMultiplexer |
#define _calculateItkPipelineFunction | ( | result, | |
mitksource, | |||
itkpipelinefunction, | |||
type, | |||
dimension | |||
) |
if ( typeId == typeid(type) ) \ { \ typedef itk::Image<type, dimension> ImageType; \ typedef mitk::ImageToItk<ImageType> ImageToItkType; \ typedef itk::SmartPointer<ImageToItkType> ImageToItkTypePointer; \ typedef itk::ImageSource<ImageType> ImageFilterType; \ typedef itk::SmartPointer<ImageFilterType> ImageFilterTypePointer; \ \ ImageToItkTypePointer myImageToItkFilter = ImageToItkType::New(); \ myImageToItkFilter ->SetInput(mitksource); \ \ ImageFilterTypePointer itkpipeline = \ itkpipelinefunction(myImageToItkFilter->GetOutput()).GetPointer(); \ itkpipeline->Update(); \ \ result->InitializeByItk(itkpipeline->GetOutput()); \ result->SetVolume(itkpipeline->GetOutput()->GetBufferPointer()); \ }
Definition at line 49 of file mitkImageToItkMultiplexer.h.
#define _calculateMitkToItkPipelineFunction | ( | resultItkImage, | |
resultItkImageType, | |||
mitksource, | |||
itkpipelinefunction, | |||
type, | |||
dimension | |||
) |
if ( typeId == typeid(type) ) \ { \ typedef itk::Image<type, dimension> ImageType; \ typedef mitk::ImageToItk<ImageType> ImageToItkType; \ typedef itk::SmartPointer<ImageToItkType> ImageToItkTypePointer; \ typedef itk::ImageSource<resultItkImageType> ImageFilterType; \ typedef itk::SmartPointer<ImageFilterType> ImageFilterTypePointer; \ \ ImageToItkTypePointer myImageToItkFilter = ImageToItkType::New(); \ myImageToItkFilter->SetInput(mitksource); \ \ ImageFilterTypePointer itkpipeline = \ itkpipelinefunction<ImageType,resultItkImageType>(myImageToItkFilter->GetOutput()).GetPointer(); \ itkpipeline->Update(); \ \ resultItkImage = itkpipeline->GetOutput(); \ }
Definition at line 116 of file mitkImageToItkMultiplexer.h.
#define AllInputDimensionMitkToItkFunctionMultiplexer | ( | resultItkImage, | |
resultItkImageType, | |||
mitkSourceImage, | |||
itkfunction | |||
) |
multiplexes a mitk image to an itkFilter with inputs of dimensions 2-4 and all data types (the itkFilter must allow to do this!).
Definition at line 137 of file mitkImageToItkMultiplexer.h.
#define FixedInputDimensionMitkToItkFunctionMultiplexer | ( | resultItkImage, | |
resultItkImageType, | |||
mitkSourceImage, | |||
inputDimension, | |||
itkfunction | |||
) |
{ \ const std::type_info& typeId=*mitkSourceImage->GetPixelType().GetTypeId(); \ if (mitkSourceImage->GetDimension() == inputDimension) \ { \ _calculateMitkToItkPipelineFunction(resultItkImage, resultItkImageType, mitkSourceImage, itkfunction, double, inputDimension) else \ _calculateMitkToItkPipelineFunction(resultItkImage, resultItkImageType, mitkSourceImage, itkfunction, float, inputDimension) else \ _calculateMitkToItkPipelineFunction(resultItkImage, resultItkImageType, mitkSourceImage, itkfunction, long, inputDimension) else \ _calculateMitkToItkPipelineFunction(resultItkImage, resultItkImageType, mitkSourceImage, itkfunction, unsigned long, inputDimension) else \ _calculateMitkToItkPipelineFunction(resultItkImage, resultItkImageType, mitkSourceImage, itkfunction, int, inputDimension) else \ _calculateMitkToItkPipelineFunction(resultItkImage, resultItkImageType, mitkSourceImage, itkfunction, unsigned int, inputDimension) else \ _calculateMitkToItkPipelineFunction(resultItkImage, resultItkImageType, mitkSourceImage, itkfunction, short, inputDimension) else \ _calculateMitkToItkPipelineFunction(resultItkImage, resultItkImageType, mitkSourceImage, itkfunction, unsigned short, inputDimension) else \ _calculateMitkToItkPipelineFunction(resultItkImage, resultItkImageType, mitkSourceImage, itkfunction, char, inputDimension) else \ _calculateMitkToItkPipelineFunction(resultItkImage, resultItkImageType, mitkSourceImage, itkfunction, unsigned char, inputDimension) \ } \ }
multiplexes a mitk image to an itkFilter with inputs of fixed dimensions inputDimension and all data types (the itkFilter must allow to do this!).
Definition at line 184 of file mitkImageToItkMultiplexer.h.
#define ItkFunctionMultiplexer | ( | result, | |
mitkSourceImage, | |||
itkfunction | |||
) |
Definition at line 70 of file mitkImageToItkMultiplexer.h.
itk::ImageSource< ItkOutputImageType >::Pointer MakeCastImageFilter | ( | ItkInputImageType * | inputImage ) |
method creates a cast image filter and casts the image of ItkInputImageType to type ItkOutputImageType. The method needs to be called via the mitkImageToItkMultiplexer
mitk::Image::Pointer inputMitkImage; ... // set inputMitkImage ITKImageType::Pointer resultItkImage = ITKImageType::New(); FixedInputDimensionMitkToItkFunctionMultiplexer(resultItkImage, ITKImageType, inputMitkImage, dimension, MakeCastImageFilter);
Definition at line 40 of file mitkImageToItkMultiplexer.h.
{ typedef itk::CastImageFilter < ItkInputImageType , ItkOutputImageType > myFilterType; typename myFilterType::Pointer myFilter = myFilterType::New(); myFilter->SetInput( inputImage ); return myFilter.GetPointer(); }