ITK  4.2.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Private Member Functions
itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter > Class Template Reference

#include <itkGPUDenseFiniteDifferenceImageFilter.h>

+ Inheritance diagram for itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >:
+ Collaboration diagram for itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >:

List of all members.

Public Types

typedef SmartPointer< const SelfConstPointer
typedef TParentImageFilter CPUSuperclass
typedef
GPUSuperclass::FiniteDifferenceFunctionType 
FiniteDifferenceFunctionType
typedef
GPUFiniteDifferenceImageFilter
< TInputImage, TOutputImage,
TParentImageFilter
GPUSuperclass
typedef
GPUSuperclass::InputImageType 
InputImageType
typedef
GPUSuperclass::OutputImageType 
OutputImageType
typedef GPUSuperclass::PixelType PixelType
typedef SmartPointer< SelfPointer
typedef
GPUDenseFiniteDifferenceImageFilter 
Self
typedef GPUSuperclass::TimeStepType TimeStepType
typedef OutputImageType UpdateBufferType
- Public Types inherited from itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >
enum  FilterStateType {
  UNINITIALIZED = 0,
  INITIALIZED = 1
}
typedef TInputImage::PixelType InputPixelType
typedef NumericTraits
< InputPixelType >::ValueType 
InputPixelValueType
typedef
FiniteDifferenceFunctionType::NeighborhoodScalesType 
NeighborhoodScalesType
typedef TOutputImage::PixelType OutputPixelType
typedef NumericTraits
< OutputPixelType >::ValueType 
OutputPixelValueType
typedef
FiniteDifferenceFunctionType::RadiusType 
RadiusType
- Public Types inherited from itk::GPUInPlaceImageFilter< TInputImage, TOutputImage, TParentImageFilter >
typedef
GPUSuperclass::OutputImagePixelType 
OutputImagePixelType
typedef
GPUSuperclass::OutputImagePointer 
OutputImagePointer
typedef
GPUSuperclass::OutputImageRegionType 
OutputImageRegionType
typedef InputImageType::Pointer InputImagePointer
typedef
InputImageType::ConstPointer 
InputImageConstPointer
typedef InputImageType::RegionType InputImageRegionType
typedef InputImageType::PixelType InputImagePixelType
- Public Types inherited from itk::GPUImageToImageFilter< TInputImage, TOutputImage, TParentImageFilter >
typedef
Superclass::DataObjectIdentifierType 
DataObjectIdentifierType
typedef TParentImageFilter Superclass

Public Member Functions

virtual const char * GetNameOfClass () const
 itkGetOpenCLSourceFromKernelMacro (GPUDenseFiniteDifferenceImageFilterKernel)
 typedef (Concept::MultiplyOperator< PixelType, double >) OutputTimesDoubleCheck
 typedef (Concept::AdditiveOperators< PixelType >) OutputAdditiveOperatorsCheck
 typedef (Concept::Convertible< typename TInputImage::PixelType, PixelType >) InputConvertibleToOutputCheck
- Public Member Functions inherited from itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >
virtual void SetDifferenceFunction (FiniteDifferenceFunctionType *_arg)
void SetStateToInitialized ()
void SetStateToUninitialized ()
virtual const
FiniteDifferenceFunctionType::Pointer
GetDifferenceFunction () const
virtual void SetUseImageSpacing (bool _arg)
virtual void UseImageSpacingOn ()
virtual void UseImageSpacingOff ()
virtual const bool & GetUseImageSpacing ()
virtual void SetMaximumRMSError (double _arg)
virtual const double & GetMaximumRMSError ()
virtual void SetRMSChange (double _arg)
virtual const double & GetRMSChange ()
virtual void SetState (FilterStateType _arg)
virtual const FilterStateTypeGetState ()
virtual void SetManualReinitialization (bool _arg)
virtual const bool & GetManualReinitialization ()
virtual void ManualReinitializationOn ()
virtual void ManualReinitializationOff ()
virtual const TimeProbeGetInitTime ()
virtual const TimeProbeGetComputeUpdateTime ()
virtual const TimeProbeGetApplyUpdateTime ()
virtual const TimeProbeGetSmoothFieldTime ()

Static Public Attributes

static const unsigned int ImageDimension = GPUSuperclass::ImageDimension
- Static Public Attributes inherited from itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >
- Static Public Attributes inherited from itk::GPUInPlaceImageFilter< TInputImage, TOutputImage, TParentImageFilter >
static const unsigned int InputImageDimension = TInputImage::ImageDimension
static const unsigned int OutputImageDimension = TOutputImage::ImageDimension
- Static Public Attributes inherited from itk::GPUImageToImageFilter< TInputImage, TOutputImage, TParentImageFilter >

Protected Member Functions

virtual void AllocateUpdateBuffer ()
virtual void ApplyUpdate (const TimeStepType &dt)
virtual void CopyInputToOutput ()
virtual UpdateBufferTypeGetUpdateBuffer ()
virtual void GPUApplyUpdate (const TimeStepType &dt)
virtual TimeStepType GPUCalculateChange ()
 GPUDenseFiniteDifferenceImageFilter ()
void PrintSelf (std::ostream &os, Indent indent) const
 ~GPUDenseFiniteDifferenceImageFilter ()
- Protected Member Functions inherited from itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >
virtual void GenerateInputRequestedRegion ()
virtual void GPUApplyUpdate (const TimeStepType &dt)=0
 GPUFiniteDifferenceImageFilter ()
virtual void GPUGenerateData ()
virtual bool Halt ()
virtual void Initialize ()
virtual void InitializeIteration ()
virtual void PostProcessOutput ()
virtual TimeStepType ResolveTimeStep (const std::vector< TimeStepType > &timeStepList, const std::vector< bool > &valid) const
virtual void SetElapsedIterations (IdentifierType _arg)
virtual bool ThreadedHalt (void *)
 ~GPUFiniteDifferenceImageFilter ()
- Protected Member Functions inherited from itk::GPUInPlaceImageFilter< TInputImage, TOutputImage, TParentImageFilter >
virtual void AllocateOutputs ()
virtual void ReleaseInputs ()
 GPUInPlaceImageFilter ()
 ~GPUInPlaceImageFilter ()
- Protected Member Functions inherited from itk::GPUImageToImageFilter< TInputImage, TOutputImage, TParentImageFilter >
 GPUImageToImageFilter ()
 ~GPUImageToImageFilter ()

Protected Attributes

int m_ApplyUpdateGPUKernelHandle
- Protected Attributes inherited from itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >
TimeProbe m_ApplyUpdateTime
TimeProbe m_ComputeUpdateTime
TimeProbe m_InitTime
bool m_ManualReinitialization
double m_MaximumRMSError
double m_RMSChange
TimeProbe m_SmoothFieldTime

Private Member Functions

 GPUDenseFiniteDifferenceImageFilter (const Self &)
void operator= (const Self &)

Detailed Description

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
class itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >

This is the GPU version of DenseFiniteDifferenceImageFilter class. Currently only single-threaded, single GPU version is implemented. See documentation for FiniteDifferenceImageFilter for an overview of the iterative finite difference algorithm:

$u_{\mathbf{i}}^{n+1}=u^n_{\mathbf{i}}+\Delta u^n_{\mathbf{i}}\Delta t$
This class defines an update buffer for $ \Delta $ and the methods GPUCalculateChange() and GPUApplyUpdate(), which are GPU version of CalculateChange() and ApplyUpdate().

Use m_UpdateBuffer defined in CPU superclass (DenseFiniteDifferenceImageFilter).

How to use this class
This filter can be used as a base class for GPU implementation of DenseFiniteDifferenceImageFilter.

Definition at line 55 of file itkGPUDenseFiniteDifferenceImageFilter.h.


Member Typedef Documentation

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
typedef SmartPointer< const Self > itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::ConstPointer
template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
typedef TParentImageFilter itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::CPUSuperclass
template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
typedef GPUSuperclass::FiniteDifferenceFunctionType itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::FiniteDifferenceFunctionType

The value type of the time step. This is distinct from PixelType because PixelType may often be a vector value, while the TimeStep is a scalar value.

Reimplemented from itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >.

Reimplemented in itk::GPUPDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >, and itk::GPUDemonsRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >.

Definition at line 72 of file itkGPUDenseFiniteDifferenceImageFilter.h.

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
typedef GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter > itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::GPUSuperclass
template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
typedef GPUSuperclass::InputImageType itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::InputImageType
template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
typedef GPUSuperclass::OutputImageType itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::OutputImageType
template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
typedef GPUSuperclass::PixelType itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::PixelType

The pixel type of the output image will be used in computations. Inherited from the superclass.

Reimplemented from itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >.

Reimplemented in itk::GPUAnisotropicDiffusionImageFilter< TInputImage, TOutputImage, TParentImageFilter >.

Definition at line 80 of file itkGPUDenseFiniteDifferenceImageFilter.h.

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
typedef SmartPointer< Self > itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::Pointer
template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
typedef GPUDenseFiniteDifferenceImageFilter itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::Self
template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
typedef GPUSuperclass::TimeStepType itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::TimeStepType
template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
typedef OutputImageType itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::UpdateBufferType

Constructor & Destructor Documentation

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::GPUDenseFiniteDifferenceImageFilter ( )
protected
template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::~GPUDenseFiniteDifferenceImageFilter ( )
inlineprotected

Definition at line 105 of file itkGPUDenseFiniteDifferenceImageFilter.h.

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::GPUDenseFiniteDifferenceImageFilter ( const Self )
private

Member Function Documentation

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
virtual void itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::AllocateUpdateBuffer ( )
protectedvirtual

This method allocates storage in m_UpdateBuffer. It is called from Superclass::GenerateData().

Implements itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >.

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
virtual void itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::ApplyUpdate ( const TimeStepType dt)
protectedvirtual

This method applies changes from the m_UpdateBuffer to the output using the GPU. "dt" is the time step to use for the update of each pixel.

Reimplemented in itk::GPUDemonsRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >.

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
virtual void itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::CopyInputToOutput ( )
protectedvirtual

A simple method to copy the data from the input to the output. ( Supports "read-only" image adaptors in the case where the input image type converts to a different output image type. )

Implements itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >.

Reimplemented in itk::GPUPDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >.

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
virtual const char* itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::GetNameOfClass ( ) const
virtual
template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
virtual UpdateBufferType* itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::GetUpdateBuffer ( )
inlineprotectedvirtual

Method to allow subclasses to get direct access to the update buffer

Definition at line 126 of file itkGPUDenseFiniteDifferenceImageFilter.h.

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
virtual void itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::GPUApplyUpdate ( const TimeStepType dt)
protectedvirtual
template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
virtual TimeStepType itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::GPUCalculateChange ( )
protectedvirtual

This method populates an update buffer with changes for each pixel in the output using the GPU. Returns value is a time step to be used for the update.

Implements itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >.

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::itkGetOpenCLSourceFromKernelMacro ( GPUDenseFiniteDifferenceImageFilterKernel  )

End concept checking Get OpenCL Kernel source as a string, creates a GetOpenCLSource method

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
void itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::operator= ( const Self )
private
template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
void itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
protectedvirtual
template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::typedef ( Concept::MultiplyOperator< PixelType, double >  )

Begin concept checking This class requires OutputTimesDoubleCheck in the form of ( Concept::MultiplyOperator< PixelType, double > )

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::typedef ( Concept::AdditiveOperators< PixelType )

This class requires OutputAdditiveOperatorsCheck in the form of ( Concept::AdditiveOperators< PixelType > )

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::typedef ( Concept::Convertible< typename TInputImage::PixelType, PixelType )

This class requires InputConvertibleToOutputCheck in the form of ( Concept::Convertible< typename TInputImage::PixelType, PixelType > )


Member Data Documentation

template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
const unsigned int itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::ImageDimension = GPUSuperclass::ImageDimension
static
template<class TInputImage, class TOutputImage, class TParentImageFilter = DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >>
int itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::m_ApplyUpdateGPUKernelHandle
protected

Definition at line 135 of file itkGPUDenseFiniteDifferenceImageFilter.h.


The documentation for this class was generated from the following file: