Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes

mitk::ItkImageToImageFilterAdapter< TPixel > Class Template Reference
[Process Classes]

adapter class, that encapsulates any itk::ImageToImageFilter More...

#include <mitkItkImageToImageFilterAdapter.h>

Inheritance diagram for mitk::ItkImageToImageFilterAdapter< TPixel >:
Inheritance graph
[legend]
Collaboration diagram for mitk::ItkImageToImageFilterAdapter< TPixel >:
Collaboration graph
[legend]

List of all members.

Public Types

typedef TPixel PixelType
typedef itk::Image< PixelType, 3 > ItkImageType
typedef
itk::ImageToImageFilter
< ItkImageType, ItkImageType
ImageToImageFilterType
typedef
ItkImageToImageFilterAdapter 
Self
typedef ImageSource Superclass
typedef itk::SmartPointer< SelfPointer
typedef itk::SmartPointer
< const Self
ConstPointer

Public Member Functions

virtual const char * GetClassName () const
virtual void SetFirstFilter (ImageToImageFilterType *_arg)
virtual ImageToImageFilterTypeGetFirstFilter ()
virtual void SetLastFilter (ImageToImageFilterType *_arg)
virtual ImageToImageFilterTypeGetLastFilter ()
void SetSingleFilter (typename ImageToImageFilterType::Pointer filter)
virtual void GenerateOutputInformation ()
virtual void GenerateData ()
 A version of GenerateData() specific for image processing filters.

Static Public Member Functions

static Pointer New ()

Protected Member Functions

 ItkImageToImageFilterAdapter ()
virtual ~ItkImageToImageFilterAdapter ()

Protected Attributes

ImageToImageFilterType::Pointer m_FirstFilter
ImageToImageFilterType::Pointer m_LastFilter

Detailed Description

template<typename TPixel>
class mitk::ItkImageToImageFilterAdapter< TPixel >

adapter class, that encapsulates any itk::ImageToImageFilter

This filter converts a mitk::Image to an itk::Image, executes the itkFilter and converts the itk::Image back to a mitk::Image as output. Either call SetSingleFilter() to encapsulate one itk::ImageToImageFilter, or SetFirstFilter() and SetLastFilter() to encapsulate a whole itk pipeline.

Definition at line 39 of file mitkItkImageToImageFilterAdapter.h.


Member Typedef Documentation

template<typename TPixel >
typedef itk::SmartPointer<const Self> mitk::ItkImageToImageFilterAdapter< TPixel >::ConstPointer

Definition at line 46 of file mitkItkImageToImageFilterAdapter.h.

template<typename TPixel >
typedef itk::ImageToImageFilter<ItkImageType, ItkImageType> mitk::ItkImageToImageFilterAdapter< TPixel >::ImageToImageFilterType

Definition at line 44 of file mitkItkImageToImageFilterAdapter.h.

template<typename TPixel >
typedef itk::Image<PixelType, 3> mitk::ItkImageToImageFilterAdapter< TPixel >::ItkImageType

Definition at line 43 of file mitkItkImageToImageFilterAdapter.h.

template<typename TPixel >
typedef TPixel mitk::ItkImageToImageFilterAdapter< TPixel >::PixelType

Definition at line 42 of file mitkItkImageToImageFilterAdapter.h.

template<typename TPixel >
typedef itk::SmartPointer<Self> mitk::ItkImageToImageFilterAdapter< TPixel >::Pointer

Definition at line 46 of file mitkItkImageToImageFilterAdapter.h.

template<typename TPixel >
typedef ItkImageToImageFilterAdapter mitk::ItkImageToImageFilterAdapter< TPixel >::Self

Definition at line 46 of file mitkItkImageToImageFilterAdapter.h.

template<typename TPixel >
typedef ImageSource mitk::ItkImageToImageFilterAdapter< TPixel >::Superclass

Definition at line 46 of file mitkItkImageToImageFilterAdapter.h.


Constructor & Destructor Documentation

template<typename TPixel >
mitk::ItkImageToImageFilterAdapter< TPixel >::ItkImageToImageFilterAdapter (  ) [protected]

Definition at line 31 of file mitkItkImageToImageFilterAdapter.txx.

: m_FirstFilter(NULL), m_LastFilter(NULL)
{
}
template<typename TPixel >
mitk::ItkImageToImageFilterAdapter< TPixel >::~ItkImageToImageFilterAdapter (  ) [protected, virtual]

Definition at line 37 of file mitkItkImageToImageFilterAdapter.txx.

{
}

Member Function Documentation

template<typename TPixel >
void mitk::ItkImageToImageFilterAdapter< TPixel >::GenerateData (  ) [virtual]

A version of GenerateData() specific for image processing filters.

This implementation will split the processing across multiple threads. The buffer is allocated by this method. Then the BeforeThreadedGenerateData() method is called (if provided). Then, a series of threads are spawned each calling ThreadedGenerateData(). After all the threads have completed processing, the AfterThreadedGenerateData() method is called (if provided). If an image processing filter cannot be threaded, the filter should provide an implementation of GenerateData(). That implementation is responsible for allocating the output buffer. If a filter an be threaded, it should NOT provide a GenerateData() method but should provide a ThreadedGenerateData() instead.

See also:
ThreadedGenerateData()

Reimplemented from mitk::ImageSource.

Definition at line 51 of file mitkItkImageToImageFilterAdapter.txx.

References mitk::CastToItkImage(), and mitk::CastToMitkImage().

{
  mitk::Image::Pointer outputImage = this->GetOutput();
  typename ImageToImageFilter::InputImageConstPointer inputImage = this->GetInput();
  if(inputImage.IsNull())
  {
    outputImage = NULL;
    return;
  }
  /* Check if there is an input Filter */
  if(m_FirstFilter.IsNull() || m_LastFilter.IsNull())
  {
    outputImage = const_cast<mitk::Image*>(inputImage.GetPointer());
    return;
  }
  /* convert input mitk image to itk image */
  mitk::Image::Pointer inputImageMitk = const_cast<mitk::Image*>(inputImage.GetPointer());  // const away cast, because FixedInput...Multiplexer Macro needs non const Pointer
  typename ItkImageType::Pointer itkImage = ItkImageType::New();
  //FixedInputDimensionMitkToItkFunctionMultiplexer(itkImage, ItkImageType , inputImageMitk, 3, MakeCastImageFilter);    
  CastToItkImage(inputImageMitk, itkImage);
  /* check if image conversion failed */
  if (itkImage.IsNull())
  {
    std::cout << " can't convert input image to itk" << std::endl;
    outputImage = const_cast<mitk::Image*>(inputImage.GetPointer());
    return;
  }
  //m_ItkImageToImageFilter->SetInput(itkImage);
  m_FirstFilter->SetInput(itkImage);
  try
  {
    //m_ItkImageToImageFilter->Update();
    m_LastFilter->UpdateLargestPossibleRegion();
  }
  catch( itk::ExceptionObject & excep )
  {
    std::cerr << "mitk::ItkImageToImageFilterAdapter: Exception while executing ITK filter" << std::endl;
    std::cerr << excep << std::endl;
  }
  /* convert the itk image back to an mitk image and set it as output for this filter */
  //outputImage->InitializeByItk(m_LastFilter->GetOutput());
  //outputImage->SetVolume(m_LastFilter->GetOutput()->GetBufferPointer());
  //ItkImageType::Pointer itkOutputImage = m_LastFilter->GetOutput();
  //CastToMitkImage(itkOutputImage, outputImage);


  typename ItkImageType::Pointer itkOutputImage;
  itkOutputImage = m_LastFilter->GetOutput();


  CastToMitkImage(itkOutputImage, outputImage);
  /* copy the transform from source to result image */
  outputImage->SetGeometry(static_cast<Geometry3D*>(inputImage->GetGeometry()->Clone().GetPointer()));
}
template<typename TPixel >
void mitk::ItkImageToImageFilterAdapter< TPixel >::GenerateOutputInformation ( void   ) [virtual]

Definition at line 45 of file mitkItkImageToImageFilterAdapter.txx.

{
  itkDebugMacro(<<"GenerateOutputInformation()");
}
template<typename TPixel >
virtual const char* mitk::ItkImageToImageFilterAdapter< TPixel >::GetClassName (  ) const [virtual]
template<typename TPixel >
virtual ImageToImageFilterType* mitk::ItkImageToImageFilterAdapter< TPixel >::GetFirstFilter (  ) [virtual]
template<typename TPixel >
virtual ImageToImageFilterType* mitk::ItkImageToImageFilterAdapter< TPixel >::GetLastFilter (  ) [virtual]
template<typename TPixel >
static Pointer mitk::ItkImageToImageFilterAdapter< TPixel >::New (  ) [static]

Method for creation through the object factory.

Reimplemented from mitk::ImageToImageFilter.

template<typename TPixel >
virtual void mitk::ItkImageToImageFilterAdapter< TPixel >::SetFirstFilter ( ImageToImageFilterType _arg ) [virtual]
template<typename TPixel >
virtual void mitk::ItkImageToImageFilterAdapter< TPixel >::SetLastFilter ( ImageToImageFilterType _arg ) [virtual]
template<typename TPixel >
void mitk::ItkImageToImageFilterAdapter< TPixel >::SetSingleFilter ( typename ImageToImageFilterType::Pointer  filter )

Definition at line 108 of file mitkItkImageToImageFilterAdapter.txx.

{
  SetFirstFilter(filter);
  SetLastFilter(filter);
}

Member Data Documentation

template<typename TPixel >
ImageToImageFilterType::Pointer mitk::ItkImageToImageFilterAdapter< TPixel >::m_FirstFilter [protected]

Definition at line 63 of file mitkItkImageToImageFilterAdapter.h.

template<typename TPixel >
ImageToImageFilterType::Pointer mitk::ItkImageToImageFilterAdapter< TPixel >::m_LastFilter [protected]

Definition at line 64 of file mitkItkImageToImageFilterAdapter.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines