go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions
elastix::MultiInputRandomCoordinateSampler< TElastix > Class Template Reference

#include <elxMultiInputRandomCoordinateSampler.h>

Inheritance diagram for elastix::MultiInputRandomCoordinateSampler< TElastix >:
Inheritance graph
[legend]
Collaboration diagram for elastix::MultiInputRandomCoordinateSampler< TElastix >:
Collaboration graph
[legend]

Public Types

typedef
Superclass2::ConfigurationPointer 
ConfigurationPointer
typedef
Superclass2::ConfigurationType 
ConfigurationType
typedef SmartPointer< const SelfConstPointer
typedef Superclass1::CoordRepType CoordRepType
typedef
Superclass1::DataObjectPointer 
DataObjectPointer
typedef
Superclass1::DefaultInterpolatorType 
DefaultInterpolatorType
typedef Superclass2::ElastixPointer ElastixPointer
typedef Superclass2::ElastixType ElastixType
typedef
Superclass1::ImageSampleContainerType 
ImageSampleContainerType
typedef
Superclass1::ImageSampleType 
ImageSampleType
typedef
Superclass1::ImageSampleValueType 
ImageSampleValueType
typedef
Superclass1::InputImageConstPointer 
InputImageConstPointer
typedef
Superclass1::InputImageIndexType 
InputImageIndexType
typedef
Superclass1::InputImagePixelType 
InputImagePixelType
typedef
Superclass1::InputImagePointer 
InputImagePointer
typedef
Superclass1::InputImagePointType 
InputImagePointType
typedef
Superclass1::InputImagePointValueType 
InputImagePointValueType
typedef
Superclass1::InputImageRegionType 
InputImageRegionType
typedef
Superclass1::InputImageSizeType 
InputImageSizeType
typedef
Superclass1::InputImageSpacingType 
InputImageSpacingType
typedef Superclass1::InputImageType InputImageType
typedef
Superclass1::InterpolatorType 
InterpolatorType
typedef Superclass2::ITKBaseType ITKBaseType
typedef Superclass1::MaskType MaskType
typedef
Superclass1::OutputVectorContainerPointer 
OutputVectorContainerPointer
typedef
Superclass1::OutputVectorContainerType 
OutputVectorContainerType
typedef SmartPointer< SelfPointer
typedef
Superclass2::RegistrationPointer 
RegistrationPointer
typedef
Superclass2::RegistrationType 
RegistrationType
typedef
MultiInputRandomCoordinateSampler 
Self
typedef
MultiInputImageRandomCoordinateSampler
< typename
elx::ImageSamplerBase
< TElastix >::InputImageType
Superclass1
typedef elx::ImageSamplerBase
< TElastix > 
Superclass2

Public Member Functions

virtual void BeforeEachResolution (void)
 elxClassNameMacro ("MultiInputRandomCoordinate")
virtual const char * GetClassName () const
 itkStaticConstMacro (InputImageDimension, unsigned int, Superclass1::InputImageDimension)

Static Public Member Functions

static Pointer New ()

Protected Member Functions

 MultiInputRandomCoordinateSampler ()
virtual ~MultiInputRandomCoordinateSampler ()

Private Member Functions

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

Detailed Description

template<class TElastix>
class elastix::MultiInputRandomCoordinateSampler< TElastix >

An interpolator based on the itk::MultiInputImageRandomCoordinateSampler.

This image sampler randomly samples 'NumberOfSamples' coordinates in the InputImageRegion. If a mask is given, the sampler tries to find samples within the mask. If the mask is very sparse, this may take some time. The MultiInputRandomCoordinate sampler samples not only positions that correspond to voxels, but also positions between voxels. An interpolator for the fixed image is thus required. A B-spline interpolator is used, the order of which can be specified by the user. Typically, the MultiInputRandomCoordinate gives a smoother cost function, because the so-called 'grid-effect' is avoided.

Compared to the elx::RandomCoordinateSampler this sampler takes into account the image regions and masks of multiple input images. Thus, only samples are selected that lie within all input images. This is useful when using the MultiResolutionRegistrationWithFeatures.

This sampler is suitable to used in combination with the NewSamplesEveryIteration parameter (defined in the elx::OptimizerBase).

The parameters used in this class are:

Parameters:
ImageSampler: Select this image sampler as follows:
(ImageSampler "MultiInputRandomCoordinate")
Parameters:
NumberOfSpatialSamples: The number of image voxels used for computing the metric value and its derivative in each iteration. Must be given for each resolution.
example: (NumberOfSpatialSamples 2048 2048 4000)
The default is 5000.
Parameters:
UseRandomSampleRegion: Defines whether to randomly select a subregion of the image in each iteration. When set to "true", also specify the SampleRegionSize. By setting this option to "true", in combination with the NewSamplesEveryIteration parameter, a "localised" similarity measure is obtained. This can give better performance in case of the presence of large inhomogeneities in the image, for example.
example: (UseRandomSampleRegion "true")
Default: false.
Parameters:
SampleRegionSize: the size of the subregions that are selected when using the UseRandomSampleRegion option. The size should be specified in mm, for each dimension. As a rule of thumb, you may try a value ~1/3 of the image size.
example: (SampleRegionSize 50.0 50.0 50.0)
You can also specify one number, which will be used for all dimensions. Also, you can specify different values for each resolution:
example: (SampleRegionSize 50.0 50.0 50.0 30.0 30.0 30.0)
In this example, in the first resolution 50mm is used for each of the 3 dimensions, and in the second resolution 30mm.
Default: sampleRegionSize[i] = min ( fixedImageSize[i], max_i ( fixedImageSize[i]/3 ) ), with fixedImageSize in mm. So, approximately 1/3 of the fixed image size.
Parameters:
FixedImageBSplineInterpolationOrder: When using a MultiInputRandomCoordinate sampler, the fixed image needs to be interpolated. This is done using a B-spline interpolator. With this option you can specify the order of interpolation.
example: (FixedImageBSplineInterpolationOrder 0 0 1)
Default value: 1. The parameter can be specified for each resolution.
See also:
MultiResolutionRegistrationWithFeatures

Definition at line 83 of file elxMultiInputRandomCoordinateSampler.h.


Member Typedef Documentation

template<class TElastix >
typedef Superclass2::ConfigurationPointer elastix::MultiInputRandomCoordinateSampler< TElastix >::ConfigurationPointer

Definition at line 145 of file elxMultiInputRandomCoordinateSampler.h.

template<class TElastix >
typedef Superclass2::ConfigurationType elastix::MultiInputRandomCoordinateSampler< TElastix >::ConfigurationType

Definition at line 144 of file elxMultiInputRandomCoordinateSampler.h.

template<class TElastix >
typedef SmartPointer<const Self> elastix::MultiInputRandomCoordinateSampler< TElastix >::ConstPointer

Reimplemented from itk::ImageSamplerBase< TElastix >.

Definition at line 99 of file elxMultiInputRandomCoordinateSampler.h.

This image sampler samples the image on physical coordinates and thus needs an interpolator.

Reimplemented from itk::MultiInputImageRandomCoordinateSampler< elx::ImageSamplerBase< TElastix >::InputImageType >.

Definition at line 134 of file elxMultiInputRandomCoordinateSampler.h.

Typedefs inherited from the superclass.

Reimplemented from itk::ImageSamplerBase< TElastix >.

Definition at line 114 of file elxMultiInputRandomCoordinateSampler.h.

template<class TElastix >
typedef Superclass2::ElastixPointer elastix::MultiInputRandomCoordinateSampler< TElastix >::ElastixPointer

Definition at line 143 of file elxMultiInputRandomCoordinateSampler.h.

template<class TElastix >
typedef Superclass2::ElastixType elastix::MultiInputRandomCoordinateSampler< TElastix >::ElastixType

Typedefs inherited from Elastix.

Definition at line 142 of file elxMultiInputRandomCoordinateSampler.h.

Reimplemented from itk::ImageSamplerBase< TElastix >.

Definition at line 123 of file elxMultiInputRandomCoordinateSampler.h.

Reimplemented from itk::ImageSamplerBase< TElastix >.

Definition at line 122 of file elxMultiInputRandomCoordinateSampler.h.

Reimplemented from itk::ImageSamplerBase< TElastix >.

Definition at line 130 of file elxMultiInputRandomCoordinateSampler.h.

Reimplemented from itk::ImageSamplerBase< TElastix >.

Definition at line 119 of file elxMultiInputRandomCoordinateSampler.h.

Reimplemented from itk::ImageSamplerBase< TElastix >.

Definition at line 125 of file elxMultiInputRandomCoordinateSampler.h.

Reimplemented from itk::ImageSamplerBase< TElastix >.

Definition at line 121 of file elxMultiInputRandomCoordinateSampler.h.

Reimplemented from itk::ImageSamplerBase< TElastix >.

Definition at line 118 of file elxMultiInputRandomCoordinateSampler.h.

Reimplemented from itk::ImageSamplerBase< TElastix >.

Definition at line 126 of file elxMultiInputRandomCoordinateSampler.h.

Reimplemented from itk::ImageSamplerBase< TElastix >.

Definition at line 129 of file elxMultiInputRandomCoordinateSampler.h.

Reimplemented from itk::ImageSamplerBase< TElastix >.

Definition at line 120 of file elxMultiInputRandomCoordinateSampler.h.

Reimplemented from itk::ImageSamplerBase< TElastix >.

Definition at line 127 of file elxMultiInputRandomCoordinateSampler.h.

Reimplemented from itk::ImageSamplerBase< TElastix >.

Definition at line 117 of file elxMultiInputRandomCoordinateSampler.h.

template<class TElastix >
typedef Superclass2::ITKBaseType elastix::MultiInputRandomCoordinateSampler< TElastix >::ITKBaseType

Definition at line 148 of file elxMultiInputRandomCoordinateSampler.h.

template<class TElastix >
typedef Superclass1::MaskType elastix::MultiInputRandomCoordinateSampler< TElastix >::MaskType

Reimplemented from itk::ImageSamplerBase< TElastix >.

Definition at line 124 of file elxMultiInputRandomCoordinateSampler.h.

Reimplemented from itk::ImageSamplerBase< TElastix >.

Definition at line 116 of file elxMultiInputRandomCoordinateSampler.h.

Reimplemented from itk::ImageSamplerBase< TElastix >.

Definition at line 115 of file elxMultiInputRandomCoordinateSampler.h.

template<class TElastix >
typedef SmartPointer<Self> elastix::MultiInputRandomCoordinateSampler< TElastix >::Pointer

Reimplemented from itk::ImageSamplerBase< TElastix >.

Definition at line 98 of file elxMultiInputRandomCoordinateSampler.h.

template<class TElastix >
typedef Superclass2::RegistrationPointer elastix::MultiInputRandomCoordinateSampler< TElastix >::RegistrationPointer

Definition at line 147 of file elxMultiInputRandomCoordinateSampler.h.

template<class TElastix >
typedef Superclass2::RegistrationType elastix::MultiInputRandomCoordinateSampler< TElastix >::RegistrationType

Definition at line 146 of file elxMultiInputRandomCoordinateSampler.h.

Standard ITK-stuff.

Reimplemented from itk::ImageSamplerBase< TElastix >.

Definition at line 93 of file elxMultiInputRandomCoordinateSampler.h.

Definition at line 96 of file elxMultiInputRandomCoordinateSampler.h.

template<class TElastix >
typedef elx::ImageSamplerBase<TElastix> elastix::MultiInputRandomCoordinateSampler< TElastix >::Superclass2

Definition at line 97 of file elxMultiInputRandomCoordinateSampler.h.


Constructor & Destructor Documentation

template<class TElastix >
elastix::MultiInputRandomCoordinateSampler< TElastix >::MultiInputRandomCoordinateSampler ( ) [inline, protected]

The constructor.

Definition at line 160 of file elxMultiInputRandomCoordinateSampler.h.

template<class TElastix >
virtual elastix::MultiInputRandomCoordinateSampler< TElastix >::~MultiInputRandomCoordinateSampler ( ) [inline, protected, virtual]

The destructor.

Definition at line 162 of file elxMultiInputRandomCoordinateSampler.h.

template<class TElastix >
elastix::MultiInputRandomCoordinateSampler< TElastix >::MultiInputRandomCoordinateSampler ( const Self ) [private]

The private constructor.


Member Function Documentation

template<class TElastix >
virtual void elastix::MultiInputRandomCoordinateSampler< TElastix >::BeforeEachResolution ( void  ) [virtual]

Execute stuff before each resolution:

  • Set the number of samples.
  • Set the fixed image interpolation order
  • Set the UseRandomSampleRegion flag and the SampleRegionSize
template<class TElastix >
elastix::MultiInputRandomCoordinateSampler< TElastix >::elxClassNameMacro ( "MultiInputRandomCoordinate"  )

Name of this class. Use this name in the parameter file to select this specific interpolator.
example: (ImageSampler "MultiInputRandomCoordinate")

template<class TElastix >
virtual const char* elastix::MultiInputRandomCoordinateSampler< TElastix >::GetClassName ( ) const [virtual]

Run-time type information (and related methods).

Reimplemented from itk::ImageSamplerBase< TElastix >.

template<class TElastix >
elastix::MultiInputRandomCoordinateSampler< TElastix >::itkStaticConstMacro ( InputImageDimension  ,
unsigned  int,
Superclass1::InputImageDimension   
)

The input image dimension.

template<class TElastix >
static Pointer elastix::MultiInputRandomCoordinateSampler< TElastix >::New ( ) [static]

Method for creation through the object factory.

Reimplemented from itk::ImageSamplerBase< TElastix >.

template<class TElastix >
void elastix::MultiInputRandomCoordinateSampler< TElastix >::operator= ( const Self ) [private]

The private copy constructor.



Generated on 24-05-2012 for elastix by doxygen 1.7.6.1 elastix logo