Defines | Functions

mitkImageToItkMultiplexer.h File Reference

#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 Documentation

#define _calculateItkPipelineFunction (   result,
  mitksource,
  itkpipelinefunction,
  type,
  dimension 
)
Value:
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 
)
Value:
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 
)
Value:
{                                                                                                  \
  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.


Function Documentation

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

  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();
}
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines