ITK
4.2.0
Insight Segmentation and Registration Toolkit
|
#include <itkGPUPDEDeformableRegistrationFilter.h>
Static Public Member Functions | |
static Pointer | New () |
Static Public Attributes | |
static const unsigned int | ImageDimension = GPUSuperclass::ImageDimension |
Static Public Attributes inherited from itk::GPUDenseFiniteDifferenceImageFilter< TDeformationField, TDeformationField, TParentImageFilter > | |
Static Public Attributes inherited from itk::GPUFiniteDifferenceImageFilter< TDeformationField, TDeformationField, TParentImageFilter > | |
Static Public Attributes inherited from itk::GPUInPlaceImageFilter< TDeformationField, TDeformationField, TParentImageFilter > | |
static const unsigned int | InputImageDimension |
static const unsigned int | OutputImageDimension |
Static Public Attributes inherited from itk::GPUImageToImageFilter< TDeformationField, TDeformationField, TParentImageFilter > |
Private Member Functions | |
GPUPDEDeformableRegistrationFilter (const Self &) | |
void | operator= (const Self &) |
Additional Inherited Members | |
Protected Attributes inherited from itk::GPUDenseFiniteDifferenceImageFilter< TDeformationField, TDeformationField, TParentImageFilter > | |
int | m_ApplyUpdateGPUKernelHandle |
Protected Attributes inherited from itk::GPUFiniteDifferenceImageFilter< TDeformationField, TDeformationField, TParentImageFilter > | |
TimeProbe | m_ApplyUpdateTime |
TimeProbe | m_ComputeUpdateTime |
TimeProbe | m_InitTime |
bool | m_ManualReinitialization |
double | m_MaximumRMSError |
double | m_RMSChange |
TimeProbe | m_SmoothFieldTime |
Deformably register two images using a PDE algorithm.
GPUPDEDeformableRegistrationFilter is a base case for filter implementing a PDE deformable algorithm that register two images by computing the deformation field which will map a moving image onto a fixed image.
A deformation field is represented as a image whose pixel type is some vector type with at least N elements, where N is the dimension of the fixed image. The vector type must support element access via operator []. It is assumed that the vector elements behave like floating point scalars.
This class is templated over the fixed image type, moving image type and the deformation Field type.
The input fixed and moving images are set via methods SetFixedImage and SetMovingImage respectively. An initial deformation field maybe set via SetInitialDeformationField or SetInput. If no initial field is set, a zero field is used as the initial condition.
The output deformation field can be obtained via methods GetOutput or GetDeformationField.
The PDE algorithm is run for a user defined number of iterations. Typically the PDE algorithm requires period Gaussin smoothing of the deformation field to enforce an elastic-like condition. The amount of smoothing is governed by a set of user defined standard deviations (one for each dimension).
In terms of memory, this filter keeps two internal buffers: one for storing the intermediate updates to the field and one for double-buffering when smoothing the deformation field. Both buffers are the same type and size as the output deformation field.
This class make use of the finite difference solver hierarchy. Update for each iteration is computed using a PDEDeformableRegistrationFunction.
Definition at line 81 of file itkGPUPDEDeformableRegistrationFilter.h.
typedef SmartPointer< const Self > itk::GPUPDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >::ConstPointer |
Reimplemented from itk::GPUDenseFiniteDifferenceImageFilter< TDeformationField, TDeformationField, TParentImageFilter >.
Reimplemented in itk::GPUDemonsRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >.
Definition at line 90 of file itkGPUPDEDeformableRegistrationFilter.h.
typedef TParentImageFilter itk::GPUPDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >::CPUSuperclass |
Reimplemented from itk::GPUDenseFiniteDifferenceImageFilter< TDeformationField, TDeformationField, TParentImageFilter >.
Reimplemented in itk::GPUDemonsRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >.
Definition at line 88 of file itkGPUPDEDeformableRegistrationFilter.h.
typedef DeformationFieldType::Pointer itk::GPUPDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >::DeformationFieldPointer |
Reimplemented in itk::GPUDemonsRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >.
Definition at line 111 of file itkGPUPDEDeformableRegistrationFilter.h.
typedef TDeformationField itk::GPUPDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >::DeformationFieldType |
Deformation field type.
Reimplemented in itk::GPUDemonsRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >.
Definition at line 110 of file itkGPUPDEDeformableRegistrationFilter.h.
typedef GPUSuperclass::FiniteDifferenceFunctionType itk::GPUPDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >::FiniteDifferenceFunctionType |
FiniteDifferenceFunction type.
Reimplemented from itk::GPUDenseFiniteDifferenceImageFilter< TDeformationField, TDeformationField, TParentImageFilter >.
Reimplemented in itk::GPUDemonsRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >.
Definition at line 118 of file itkGPUPDEDeformableRegistrationFilter.h.
typedef FixedImageType::ConstPointer itk::GPUPDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >::FixedImageConstPointer |
Definition at line 102 of file itkGPUPDEDeformableRegistrationFilter.h.
typedef FixedImageType::Pointer itk::GPUPDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >::FixedImagePointer |
Reimplemented in itk::GPUDemonsRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >.
Definition at line 101 of file itkGPUPDEDeformableRegistrationFilter.h.
typedef TFixedImage itk::GPUPDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >::FixedImageType |
FixedImage image type.
Reimplemented in itk::GPUDemonsRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >.
Definition at line 97 of file itkGPUPDEDeformableRegistrationFilter.h.
typedef GPUPDEDeformableRegistrationFunction< FixedImageType, MovingImageType, DeformationFieldType > itk::GPUPDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >::GPUPDEDeformableRegistrationFunctionType |
PDEDeformableRegistrationFilterFunction type. GPUPDEDeformableRegistrationFilterFunction type.
Definition at line 124 of file itkGPUPDEDeformableRegistrationFilter.h.
typedef GPUDenseFiniteDifferenceImageFilter< TDeformationField, TDeformationField, TParentImageFilter > itk::GPUPDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >::GPUSuperclass |
Reimplemented from itk::GPUDenseFiniteDifferenceImageFilter< TDeformationField, TDeformationField, TParentImageFilter >.
Reimplemented in itk::GPUDemonsRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >.
Definition at line 87 of file itkGPUPDEDeformableRegistrationFilter.h.
typedef MovingImageType::ConstPointer itk::GPUPDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >::MovingImageConstPointer |
Definition at line 107 of file itkGPUPDEDeformableRegistrationFilter.h.
typedef MovingImageType::Pointer itk::GPUPDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >::MovingImagePointer |
Reimplemented in itk::GPUDemonsRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >.
Definition at line 106 of file itkGPUPDEDeformableRegistrationFilter.h.
typedef TMovingImage itk::GPUPDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >::MovingImageType |
MovingImage image type.
Reimplemented in itk::GPUDemonsRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >.
Definition at line 105 of file itkGPUPDEDeformableRegistrationFilter.h.
typedef GPUSuperclass::OutputImageType itk::GPUPDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >::OutputImageType |
Types inherithed from the GPUSuperclass
Reimplemented from itk::GPUDenseFiniteDifferenceImageFilter< TDeformationField, TDeformationField, TParentImageFilter >.
Definition at line 114 of file itkGPUPDEDeformableRegistrationFilter.h.
typedef SmartPointer< Self > itk::GPUPDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >::Pointer |
Reimplemented from itk::GPUDenseFiniteDifferenceImageFilter< TDeformationField, TDeformationField, TParentImageFilter >.
Reimplemented in itk::GPUDemonsRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >.
Definition at line 89 of file itkGPUPDEDeformableRegistrationFilter.h.
typedef GPUPDEDeformableRegistrationFilter itk::GPUPDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >::Self |
Standard class typedefs.
Reimplemented from itk::GPUDenseFiniteDifferenceImageFilter< TDeformationField, TDeformationField, TParentImageFilter >.
Reimplemented in itk::GPUDemonsRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >.
Definition at line 86 of file itkGPUPDEDeformableRegistrationFilter.h.
typedef FixedArray< double, ImageDimension > itk::GPUPDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >::StandardDeviationsType |
Definition at line 164 of file itkGPUPDEDeformableRegistrationFilter.h.
|
protected |
|
inlineprotected |
Definition at line 168 of file itkGPUPDEDeformableRegistrationFilter.h.
|
private |
|
protectedvirtual |
|
protectedvirtual |
A simple method to copy the data from the input to the output. If the input does not exist, a zero field is written to the output.
Reimplemented from itk::GPUDenseFiniteDifferenceImageFilter< TDeformationField, TDeformationField, TParentImageFilter >.
virtual::itk::LightObject::Pointer itk::GPUPDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >::CreateAnother | ( | void | ) | const |
|
protectedvirtual |
It is difficult to compute in advance the input moving image region required to compute the requested output region. Thus the safest thing to do is to request for the whole moving image.
For the fixed image and deformation field, the input requested region set to be the same as that of the output requested region.
Reimplemented from itk::GPUFiniteDifferenceImageFilter< TDeformationField, TDeformationField, TParentImageFilter >.
|
protectedvirtual |
By default the output deformation field has the same Spacing, Origin and LargestPossibleRegion as the input/initial deformation field. If the initial deformation field is not set, the output information is copied from the fixed image.
|
inline |
Get output deformation field.
Definition at line 152 of file itkGPUPDEDeformableRegistrationFilter.h.
const FixedImageType* itk::GPUPDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >::GetFixedImage | ( | void | ) | const |
Get the fixed image.
const MovingImageType* itk::GPUPDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >::GetMovingImage | ( | void | ) | const |
Get the moving image.
|
virtual |
Run-time type information (and related methods)
Reimplemented from itk::GPUDenseFiniteDifferenceImageFilter< TDeformationField, TDeformationField, TParentImageFilter >.
Reimplemented in itk::GPUDemonsRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >.
|
virtual |
Get the number of valid inputs. For PDEDeformableRegistration, this checks whether the fixed and moving images have been set. While PDEDeformableRegistration can take a third input as an initial deformation field, this input is not a required input.
|
protectedvirtual |
|
protectedvirtual |
This method is called before iterating the solution.
Reimplemented from itk::GPUFiniteDifferenceImageFilter< TDeformationField, TDeformationField, TParentImageFilter >.
|
protectedvirtual |
Initialize the state of filter and equation before each iteration. Progress feeback is implemented as part of this method.
Reimplemented from itk::GPUFiniteDifferenceImageFilter< TDeformationField, TDeformationField, TParentImageFilter >.
Reimplemented in itk::GPUDemonsRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >.
itk::GPUPDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >::itkGetOpenCLSourceFromKernelMacro | ( | GPUPDEDeformableRegistrationFilterKernel | ) |
Get OpenCL Kernel source as a string, creates a GetOpenCLSource method
|
static |
Method for creation through the object factory.
Reimplemented from itk::GPUImageToImageFilter< TDeformationField, TDeformationField, TParentImageFilter >.
Reimplemented in itk::GPUDemonsRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >.
|
private |
|
protectedvirtual |
This method is called after the solution has been generated. In this case, the filter release the memory of the internal buffers.
Reimplemented from itk::GPUFiniteDifferenceImageFilter< TDeformationField, TDeformationField, TParentImageFilter >.
|
protectedvirtual |
void itk::GPUPDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >::SetFixedImage | ( | const FixedImageType * | ptr | ) |
Set the fixed image.
|
inline |
Set initial deformation field.
Definition at line 146 of file itkGPUPDEDeformableRegistrationFilter.h.
void itk::GPUPDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField, TParentImageFilter >::SetMovingImage | ( | const MovingImageType * | ptr | ) |
Set the moving image.
|
protectedvirtual |
Utility to smooth the deformation field (represented in the Output) using a Guassian operator. The amount of smoothing can be specified by setting the StandardDeviations.
|
protectedvirtual |
Utility to smooth the UpdateBuffer using a Gaussian operator. The amount of smoothing can be specified by setting the UpdateFieldStandardDeviations.
|
static |
Inherit some enums and typedefs from the GPUSuperclass.
Reimplemented from itk::GPUDenseFiniteDifferenceImageFilter< TDeformationField, TDeformationField, TParentImageFilter >.
Definition at line 128 of file itkGPUPDEDeformableRegistrationFilter.h.
|
private |
Definition at line 229 of file itkGPUPDEDeformableRegistrationFilter.h.
|
private |
Definition at line 227 of file itkGPUPDEDeformableRegistrationFilter.h.
|
private |
Definition at line 228 of file itkGPUPDEDeformableRegistrationFilter.h.
|
private |
Definition at line 232 of file itkGPUPDEDeformableRegistrationFilter.h.
|
private |
Definition at line 226 of file itkGPUPDEDeformableRegistrationFilter.h.
|
private |
Memory buffer for smoothing kernel.
Definition at line 225 of file itkGPUPDEDeformableRegistrationFilter.h.
|
private |
Temporary deformation field use for smoothing the the deformation field.
Definition at line 221 of file itkGPUPDEDeformableRegistrationFilter.h.