#include <elxRandomCoordinateSampler.h>
An interpolator based on the itk::ImageRandomCoordinateSampler.
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 RandomCoordinate 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 RandomCoordinate gives a smoother cost function, because the so-called 'grid-effect' is avoided.
This sampler is suitable to used in combination with the NewSamplesEveryIteration parameter (defined in the elx::OptimizerBase).
The parameters used in this class are:
ImageSampler: Select this image sampler as follows:
(ImageSampler "RandomCoordinate")
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.
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.
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.
FixedImageBSplineInterpolationOrder: When using a RandomCoordinate 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.
Definition at line 78 of file elxRandomCoordinateSampler.h.

Static Public Member Functions | |
| static Pointer | New () |
| Static Public Member Functions inherited from itk::ImageRandomCoordinateSampler< TInputImage > | |
| static Pointer | New () |
| Static Public Member Functions inherited from itk::ImageRandomSamplerBase< TInputImage > | |
| static Pointer | New () |
| Static Public Member Functions inherited from itk::ImageSamplerBase< TInputImage > | |
| static Pointer | New () |
| Static Public Member Functions inherited from itk::VectorContainerSource< VectorDataContainer< ImageSample< TInputImage > > > | |
| static Pointer | New () |
| Static Public Member Functions inherited from itk::ImageSamplerBase< TElastix > | |
| static Pointer | New () |
| Static Public Member Functions inherited from itk::VectorContainerSource< TOutputVectorContainer > | |
| static Pointer | New () |
Protected Member Functions | |
| RandomCoordinateSampler ()=default | |
| ~RandomCoordinateSampler () override=default | |
| Protected Member Functions inherited from itk::ImageRandomCoordinateSampler< TInputImage > | |
| void | GenerateData () override |
| virtual void | GenerateRandomCoordinate (const InputImageContinuousIndexType &smallestContIndex, const InputImageContinuousIndexType &largestContIndex, InputImageContinuousIndexType &randomContIndex) |
| virtual void | GenerateSampleRegion (const InputImageContinuousIndexType &smallestImageContIndex, const InputImageContinuousIndexType &largestImageContIndex, InputImageContinuousIndexType &smallestContIndex, InputImageContinuousIndexType &largestContIndex) |
| ImageRandomCoordinateSampler ()=default | |
| void | PrintSelf (std::ostream &os, Indent indent) const override |
| ~ImageRandomCoordinateSampler () override=default | |
| Protected Member Functions inherited from itk::ImageRandomSamplerBase< TInputImage > | |
| void | GenerateRandomNumberList () |
| Statistics::MersenneTwisterRandomVariateGenerator & | GetRandomVariateGenerator () |
| ImageRandomSamplerBase () | |
| void | PrintSelf (std::ostream &os, Indent indent) const override |
| ~ImageRandomSamplerBase () override=default | |
| Protected Member Functions inherited from itk::ImageSamplerBase< TInputImage > | |
| virtual bool | CheckInputImageRegions () |
| void | CropInputImageRegion () |
| void | GenerateInputRequestedRegion () override |
| ImageSamplerBase () | |
| virtual bool | IsInsideAllMasks (const InputImagePointType &point) const |
| void | PrintSelf (std::ostream &os, Indent indent) const override |
| virtual void | UpdateAllMasks () |
| ~ImageSamplerBase () override=default | |
| Protected Member Functions inherited from itk::VectorContainerSource< VectorDataContainer< ImageSample< TInputImage > > > | |
| void | PrintSelf (std::ostream &os, Indent indent) const override |
| VectorContainerSource () | |
| ~VectorContainerSource () override=default | |
| Protected Member Functions inherited from itk::ImageSamplerBase< TElastix > | |
| virtual bool | CheckInputImageRegions () |
| void | CropInputImageRegion () |
| void | GenerateInputRequestedRegion () override |
| ImageSamplerBase () | |
| virtual bool | IsInsideAllMasks (const InputImagePointType &point) const |
| void | PrintSelf (std::ostream &os, Indent indent) const override |
| virtual void | UpdateAllMasks () |
| ~ImageSamplerBase () override=default | |
| Protected Member Functions inherited from itk::VectorContainerSource< TOutputVectorContainer > | |
| void | PrintSelf (std::ostream &os, Indent indent) const override |
| VectorContainerSource () | |
| ~VectorContainerSource () override=default | |
Private Attributes | |
| elxOverrideGetSelfMacro | |
Additional Inherited Members | |
| Protected Types inherited from itk::ImageRandomCoordinateSampler< TInputImage > | |
| using | InputImageContinuousIndexType = typename InterpolatorType::ContinuousIndexType |
| Static Protected Member Functions inherited from itk::ImageSamplerBase< TInputImage > | |
| static std::vector< InputImageRegionType > | SplitRegion (const InputImageRegionType &inputRegion, const vcl_size_t requestedNumberOfSubregions) |
| Static Protected Member Functions inherited from itk::ImageSamplerBase< TElastix > | |
| static std::vector< InputImageRegionType > | SplitRegion (const InputImageRegionType &inputRegion, const vcl_size_t requestedNumberOfSubregions) |
| Protected Attributes inherited from itk::ImageRandomCoordinateSampler< TInputImage > | |
| InterpolatorPointer | m_Interpolator |
| InputImageSpacingType | m_SampleRegionSize { itk::MakeFilled<InputImageSpacingType>(1.0) } |
| Protected Attributes inherited from itk::ImageRandomSamplerBase< TInputImage > | |
| std::vector< double > | m_RandomNumberList {} |
| Protected Attributes inherited from itk::ImageSamplerBase< TInputImage > | |
| unsigned long | m_NumberOfSamples { 0 } |
| bool | m_UseMultiThread { true } |
| Protected Attributes inherited from itk::ImageSamplerBase< TElastix > | |
| unsigned long | m_NumberOfSamples |
| bool | m_UseMultiThread |
| using elastix::RandomCoordinateSampler< TElastix >::ConstPointer = itk::SmartPointer<const Self> |
Definition at line 90 of file elxRandomCoordinateSampler.h.
| using elastix::RandomCoordinateSampler< TElastix >::ITKBaseType = typename Superclass2::ITKBaseType |
Definition at line 135 of file elxRandomCoordinateSampler.h.
| using elastix::RandomCoordinateSampler< TElastix >::Pointer = itk::SmartPointer<Self> |
Definition at line 89 of file elxRandomCoordinateSampler.h.
| using elastix::RandomCoordinateSampler< TElastix >::Self = RandomCoordinateSampler |
Standard ITK-stuff.
Definition at line 86 of file elxRandomCoordinateSampler.h.
| using elastix::RandomCoordinateSampler< TElastix >::Superclass1 = itk::ImageRandomCoordinateSampler<typename elx::ImageSamplerBase<TElastix>::InputImageType> |
Definition at line 87 of file elxRandomCoordinateSampler.h.
| using elastix::RandomCoordinateSampler< TElastix >::Superclass2 = elx::ImageSamplerBase<TElastix> |
Definition at line 88 of file elxRandomCoordinateSampler.h.
|
protecteddefault |
The constructor.
|
overrideprotecteddefault |
The destructor.
|
override |
Execute stuff before each resolution:
| elastix::RandomCoordinateSampler< TElastix >::elxClassNameMacro | ( | "RandomCoordinate" | ) |
Name of this class. Use this name in the parameter file to select this specific interpolator.
example: (ImageSampler "RandomCoordinate")
| elastix::RandomCoordinateSampler< TElastix >::ITK_DISALLOW_COPY_AND_MOVE | ( | RandomCoordinateSampler< TElastix > | ) |
| elastix::RandomCoordinateSampler< TElastix >::itkOverrideGetNameOfClassMacro | ( | RandomCoordinateSampler< TElastix > | ) |
Run-time type information (and related methods).
| elastix::RandomCoordinateSampler< TElastix >::itkStaticConstMacro | ( | InputImageDimension | , |
| unsigned int | , | ||
| Superclass1::InputImageDimension | ) |
The input image dimension.
|
static |
Method for creation through the object factory.
|
private |
Definition at line 152 of file elxRandomCoordinateSampler.h.
Generated on 26-02-2026
for elastix by 1.16.1 (669aeeefca743c148e2d935b3d3c69535c7491e6) |