Loading...
Searching...
No Matches
itk::ImageGridSampler< TInputImage > Class Template Reference
Components » ImageSamplers

`#include <itkImageGridSampler.h>`

## Detailed Description

template<class TInputImage>
class itk::ImageGridSampler< TInputImage >

Samples image voxels on a regular grid.

This ImageSampler samples voxels that lie on a regular grid. The grid can be specified by an integer downsampling factor for each dimension.

Parameters
  SampleGridSpacing: This parameter controls the spacing of the uniform grid in all dimensions. This should be given in index coordinates.
  example: (SampleGridSpacing 4 4 4)
  Default is 2 in each dimension.

Definition at line 45 of file itkImageGridSampler.h.

Inheritance diagram for itk::ImageGridSampler< TInputImage >:
[legend]

## Data Structures

struct | UserData
struct | WorkUnit

## Public Types

using | ConstPointer = SmartPointer<const Self>
using | ImageSampleContainerPointer
using | ImageSampleContainerType
using | ImageSampleType
using | InputImageConstPointer
using | InputImageIndexType
using | InputImagePixelType
using | InputImagePointer
using | InputImagePointType
using | InputImageRegionType
using | InputImageSizeType = typename InputImageType::SizeType
using | InputImageType
using | MaskType = typename Superclass::MaskType
using | Pointer = SmartPointer<Self>
using | SampleGridIndexType = InputImageIndexType
using | SampleGridSizeType = typename InputImageType::SizeType
using | SampleGridSpacingType = typename InputImageType::OffsetType
using | SampleGridSpacingValueType = typename SampleGridSpacingType::OffsetValueType
using | Self = ImageGridSampler
using | Superclass = ImageSamplerBase<TInputImage>
Public Types inherited from itk::ImageSamplerBase< TInputImage >
using | ConstPointer = SmartPointer<const Self>
using | ImageSampleContainerPointer = typename ImageSampleContainerType::Pointer
using | ImageSampleContainerType = VectorDataContainer<std::vcl_size_t, ImageSampleType>
using | ImageSampleType = ImageSample<InputImageType>
using | ImageSampleValueType = typename ImageSampleType::RealType
using | InputImageConstPointer = typename InputImageType::ConstPointer
using | InputImageIndexType = typename InputImageType::IndexType
using | InputImagePixelType = typename InputImageType::PixelType
using | InputImagePointer = typename InputImageType::Pointer
using | InputImagePointType = typename InputImageType::PointType
using | InputImagePointValueType = typename InputImagePointType::ValueType
using | InputImageRegionType = typename InputImageType::RegionType
using | InputImageRegionVectorType = std::vector<InputImageRegionType>
using | InputImageSizeType = typename InputImageType::SizeType
using | InputImageType = TInputImage
using | MaskConstPointer = typename MaskType::ConstPointer
using | MaskPointer = typename MaskType::Pointer
using | MaskType = ImageMaskSpatialObject<Self::InputImageDimension>
using | MaskVectorType = std::vector<MaskConstPointer>
using | OutputVectorContainerPointer
using | OutputVectorContainerType
using | Pointer = SmartPointer<Self>
using | Self = ImageSamplerBase
using | Superclass = VectorContainerSource<VectorDataContainer<std::vcl_size_t, ImageSample<TInputImage>>>
Public Types inherited from itk::VectorContainerSource< VectorDataContainer< std::vcl_size_t, ImageSample< TInputImage > > >
using | ConstPointer
using | OutputVectorContainerPointer
using | OutputVectorContainerType
using | Pointer
using | Self
using | Superclass

## Public Member Functions

virtual const char * | GetClassName () const
virtual const SampleGridSpacingType & | GetSampleGridSpacing ()
| ITK_DISALLOW_COPY_AND_MOVE (ImageGridSampler)
| itkStaticConstMacro (InputImageDimension, unsigned int, Superclass::InputImageDimension)
bool | SelectingNewSamplesOnUpdateSupported () const override
bool | SelectNewSamplesOnUpdate () override
void | SetNumberOfSamples (unsigned long nrofsamples) override
void | SetSampleGridSpacing (const SampleGridSpacingType &arg)
Public Member Functions inherited from itk::ImageSamplerBase< TInputImage >
virtual const InputImageRegionType & | GetCroppedInputImageRegion ()
const InputImageType * | GetInput ()
const InputImageType * | GetInput (unsigned int idx)
virtual const InputImageRegionType & | GetInputImageRegion () const
virtual const InputImageRegionType & | GetInputImageRegion (unsigned int pos) const
virtual const MaskType * | GetMask () const
virtual const MaskType * | GetMask (unsigned int pos) const
virtual unsigned int | GetNumberOfInputImageRegions () const
virtual unsigned int | GetNumberOfMasks () const
virtual unsigned long | GetNumberOfSamples () const
OutputVectorContainerType * | GetOutput ()
| ITK_DISALLOW_COPY_AND_MOVE (ImageSamplerBase)
| itkStaticConstMacro (InputImageDimension, unsigned int, InputImageType::ImageDimension)
DataObject::Pointer | MakeOutput (ProcessObject::DataObjectPointerArraySizeType idx) override
void | SetInput (const InputImageType *input)
void | SetInput (unsigned int idx, const InputImageType *input)
virtual void | SetInputImageRegion (const InputImageRegionType _arg)
virtual void | SetInputImageRegion (const InputImageRegionType _arg, unsigned int pos)
virtual void | SetMask (const MaskType *_arg)
virtual void | SetMask (const MaskType *_arg, unsigned int pos)
virtual void | SetNumberOfInputImageRegions (const unsigned int _arg)
virtual void | SetNumberOfMasks (const unsigned int _arg)
virtual void | SetUseMultiThread (bool _arg)
Public Member Functions inherited from itk::VectorContainerSource< VectorDataContainer< std::vcl_size_t, ImageSample< TInputImage > > >
OutputVectorContainerType * | GetOutput ()
OutputVectorContainerType * | GetOutput (unsigned int idx)
virtual void | GraftNthOutput (unsigned int idx, DataObject *output)
virtual void | GraftOutput (DataObject *output)
| ITK_DISALLOW_COPY_AND_MOVE (VectorContainerSource)
DataObjectPointer | MakeOutput (ProcessObject::DataObjectPointerArraySizeType idx) override

## Static Public Member Functions

static Pointer | New ()
Static Public Member Functions inherited from itk::ImageSamplerBase< TInputImage >
static Pointer | New ()
Static Public Member Functions inherited from itk::VectorContainerSource< VectorDataContainer< std::vcl_size_t, ImageSample< TInputImage > > >
static Pointer | New ()

## Protected Member Functions

void | GenerateData () override
| ImageGridSampler ()=default
void | PrintSelf (std::ostream &os, Indent indent) const override
| ~ImageGridSampler () 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< std::vcl_size_t, ImageSample< TInputImage > > >
void | PrintSelf (std::ostream &os, Indent indent) const override
| VectorContainerSource ()
| ~VectorContainerSource () override=default

## Static Private Member Functions

static std::pair< SampleGridIndexType, SampleGridSizeType > | DetermineGridIndexAndSize (const InputImageRegionType &croppedInputImageRegion, const SampleGridSpacingType &gridSpacing)
template<elastix::MaskCondition VMaskCondition>
static void | GenerateDataForWorkUnit (WorkUnit &, const InputImageType &, const MaskType *, const SampleGridSpacingType &)
static std::vector< WorkUnit > | GenerateWorkUnits (const ThreadIdType numberOfWorkUnits, const InputImageRegionType &croppedInputImageRegion, const SampleGridIndexType gridIndex, const SampleGridSpacingType gridSpacing, std::vector< ImageSampleType > &samples)
template<unsigned int VIndex>
static unsigned int | GetGridSizeValue (const SampleGridSizeType &gridSize)
template<unsigned int VIndex>
static void | JumpToNextGridPosition (SampleGridIndexType &index, const SampleGridIndexType &gridIndex, const SampleGridSpacingType &gridSpacing)
static void | MultiThreadedGenerateData (MultiThreaderBase &multiThreader, const ThreadIdType numberOfWorkUnits, const TInputImage &inputImage, const MaskType *const mask, const InputImageRegionType &croppedInputImageRegion, const SampleGridSpacingType &gridSpacing, std::vector< ImageSampleType > &samples)
static void | SingleThreadedGenerateData (const TInputImage &inputImage, const MaskType *const mask, const InputImageRegionType &croppedInputImageRegion, const SampleGridSpacingType &gridSpacing, std::vector< ImageSampleType > &samples)
template<elastix::MaskCondition VMaskCondition>
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | ThreaderCallback (void *arg)

## Private Attributes

unsigned long | m_RequestedNumberOfSamples { 0 }
SampleGridSpacingType | m_SampleGridSpacing { itk::MakeFilled<SampleGridSpacingType>(1) }

## Additional Inherited Members

Static Protected Member Functions inherited from itk::ImageSamplerBase< TInputImage >
static std::vector< InputImageRegionType > | SplitRegion (const InputImageRegionType &inputRegion, const vcl_size_t requestedNumberOfSubregions)
Protected Attributes inherited from itk::ImageSamplerBase< TInputImage >
unsigned long | m_NumberOfSamples { 0 }
bool | m_UseMultiThread { true }

## Member Typedef Documentation

## ConstPointer

template<class TInputImage>

using itk::ImageGridSampler< TInputImage >::ConstPointer = SmartPointer<const Self>

Definition at line 54 of file itkImageGridSampler.h.

## ImageSampleContainerPointer

template<class TInputImage>

using itk::ImageSamplerBase< TInputImage >::ImageSampleContainerPointer

Definition at line 78 of file itkImageSamplerBase.h.

## ImageSampleContainerType

template<class TInputImage>

using itk::ImageSamplerBase< TInputImage >::ImageSampleContainerType

Definition at line 77 of file itkImageSamplerBase.h.

## ImageSampleType

template<class TInputImage>

using itk::ImageSamplerBase< TInputImage >::ImageSampleType

Other typdefs.

Definition at line 76 of file itkImageSamplerBase.h.

## InputImageConstPointer

template<class TInputImage>

using itk::ImageSamplerBase< TInputImage >::InputImageConstPointer

Definition at line 68 of file itkImageSamplerBase.h.

## InputImageIndexType

template<class TInputImage>

using itk::ImageSamplerBase< TInputImage >::InputImageIndexType

Definition at line 80 of file itkImageSamplerBase.h.

## InputImagePixelType

template<class TInputImage>

using itk::ImageSamplerBase< TInputImage >::InputImagePixelType

Definition at line 70 of file itkImageSamplerBase.h.

## InputImagePointer

template<class TInputImage>

using itk::ImageSamplerBase< TInputImage >::InputImagePointer

Definition at line 67 of file itkImageSamplerBase.h.

## InputImagePointType

template<class TInputImage>

using itk::ImageSamplerBase< TInputImage >::InputImagePointType

Definition at line 81 of file itkImageSamplerBase.h.

## InputImageRegionType

template<class TInputImage>

using itk::ImageSamplerBase< TInputImage >::InputImageRegionType

Definition at line 69 of file itkImageSamplerBase.h.

## InputImageSizeType

template<class TInputImage>

using itk::ImageGridSampler< TInputImage >::InputImageSizeType = typename InputImageType::SizeType

Definition at line 92 of file itkImageGridSampler.h.

## InputImageType

template<class TInputImage>

using itk::ImageSamplerBase< TInputImage >::InputImageType

Some Image related typedefs.

Definition at line 66 of file itkImageSamplerBase.h.

## MaskType

template<class TInputImage>

using itk::ImageGridSampler< TInputImage >::MaskType = typename Superclass::MaskType

Definition at line 77 of file itkImageGridSampler.h.

## Pointer

template<class TInputImage>

using itk::ImageGridSampler< TInputImage >::Pointer = SmartPointer<Self>

Definition at line 53 of file itkImageGridSampler.h.

## SampleGridIndexType

template<class TInputImage>

using itk::ImageGridSampler< TInputImage >::SampleGridIndexType = InputImageIndexType

Definition at line 91 of file itkImageGridSampler.h.

## SampleGridSizeType

template<class TInputImage>

using itk::ImageGridSampler< TInputImage >::SampleGridSizeType = typename InputImageType::SizeType

Definition at line 90 of file itkImageGridSampler.h.

## SampleGridSpacingType

template<class TInputImage>

using itk::ImageGridSampler< TInputImage >::SampleGridSpacingType = typename InputImageType::OffsetType

Typedefs for support of user defined grid spacing for the spatial samples.

Definition at line 88 of file itkImageGridSampler.h.

## SampleGridSpacingValueType

template<class TInputImage>

using itk::ImageGridSampler< TInputImage >::SampleGridSpacingValueType = typename SampleGridSpacingType::OffsetValueType

Definition at line 89 of file itkImageGridSampler.h.

## Self

template<class TInputImage>

using itk::ImageGridSampler< TInputImage >::Self = ImageGridSampler

Standard ITK-stuff.

Definition at line 51 of file itkImageGridSampler.h.

## Superclass

template<class TInputImage>

using itk::ImageGridSampler< TInputImage >::Superclass = ImageSamplerBase<TInputImage>

Definition at line 52 of file itkImageGridSampler.h.

## Constructor & Destructor Documentation

## ImageGridSampler()

template<class TInputImage>

itk::ImageGridSampler< TInputImage >::ImageGridSampler | ( |  | ) |

protected default

The constructor.

## ~ImageGridSampler()

template<class TInputImage>

itk::ImageGridSampler< TInputImage >::~ImageGridSampler | ( |  | ) |

override protected default

The destructor.

## Member Function Documentation

## DetermineGridIndexAndSize()

template<class TInputImage>

std::pair< SampleGridIndexType, SampleGridSizeType > itk::ImageGridSampler< TInputImage >::DetermineGridIndexAndSize | ( | const InputImageRegionType & | croppedInputImageRegion,
|  | const SampleGridSpacingType & | gridSpacing )

static private

Determine the grid.

## GenerateData()

template<class TInputImage>

void itk::ImageGridSampler< TInputImage >::GenerateData | ( |  | ) |

override protected

Function that does the work.

## GenerateDataForWorkUnit()

template<class TInputImage>
template<elastix::MaskCondition VMaskCondition>

void itk::ImageGridSampler< TInputImage >::GenerateDataForWorkUnit | ( | WorkUnit & | ,
|  | const InputImageType & | ,
|  | const MaskType * | ,
|  | const SampleGridSpacingType & | )

static private

Generates the data for one specific work unit.

## GenerateWorkUnits()

template<class TInputImage>

std::vector< WorkUnit > itk::ImageGridSampler< TInputImage >::GenerateWorkUnits | ( | const ThreadIdType | numberOfWorkUnits,
|  | const InputImageRegionType & | croppedInputImageRegion,
|  | const SampleGridIndexType | gridIndex,
|  | const SampleGridSpacingType | gridSpacing,
|  | std::vector< ImageSampleType > & | samples )

static private

Generates the work units, to be processed when doing multi-threading.

## GetClassName()

template<class TInputImage>

virtual const char * itk::ImageGridSampler< TInputImage >::GetClassName | ( |  | ) | const

virtual

Run-time type information (and related methods).

Reimplemented from itk::ImageSamplerBase< TInputImage >.

Reimplemented in elastix::GridSampler< TElastix >.

## GetGridSizeValue()

template<class TInputImage>
template<unsigned int VIndex>

unsigned int itk::ImageGridSampler< TInputImage >::GetGridSizeValue | ( | const SampleGridSizeType & | gridSize | ) |

inline static private

Retrieves the sample grid size along the axis, specified by VIndex

Definition at line 184 of file itkImageGridSampler.h.

## GetSampleGridSpacing()

template<class TInputImage>

virtual const SampleGridSpacingType & itk::ImageGridSampler< TInputImage >::GetSampleGridSpacing | ( |  | ) |

virtual

## ITK_DISALLOW_COPY_AND_MOVE()

template<class TInputImage>

itk::ImageGridSampler< TInputImage >::ITK_DISALLOW_COPY_AND_MOVE | ( | ImageGridSampler< TInputImage > |  | ) |

## itkStaticConstMacro()

template<class TInputImage>

itk::ImageGridSampler< TInputImage >::itkStaticConstMacro | ( | InputImageDimension | ,
|  | unsigned int | ,
|  | Superclass::InputImageDimension | )

The input image dimension.

## JumpToNextGridPosition()

template<class TInputImage>
template<unsigned int VIndex>

void itk::ImageGridSampler< TInputImage >::JumpToNextGridPosition | ( | SampleGridIndexType & | index,
|  | const SampleGridIndexType & | gridIndex,
|  | const SampleGridSpacingType & | gridSpacing )

inline static private

Jumps to the next grid position along the axis, specified by VIndex

Definition at line 199 of file itkImageGridSampler.h.

## MultiThreadedGenerateData()

template<class TInputImage>

void itk::ImageGridSampler< TInputImage >::MultiThreadedGenerateData | ( | MultiThreaderBase & | multiThreader,
|  | const ThreadIdType | numberOfWorkUnits,
|  | const TInputImage & | inputImage,
|  | const MaskType *const | mask,
|  | const InputImageRegionType & | croppedInputImageRegion,
|  | const SampleGridSpacingType & | gridSpacing,
|  | std::vector< ImageSampleType > & | samples )

static private

## New()

template<class TInputImage>

Pointer itk::ImageGridSampler< TInputImage >::New | ( |  | ) |

static

Method for creation through the object factory.

## PrintSelf()

template<class TInputImage>

void itk::ImageGridSampler< TInputImage >::PrintSelf | ( | std::ostream & | os,
|  | Indent | indent ) const

override protected

PrintSelf.

## SelectingNewSamplesOnUpdateSupported()

template<class TInputImage>

bool itk::ImageGridSampler< TInputImage >::SelectingNewSamplesOnUpdateSupported | ( |  | ) | const

inline override virtual

Returns whether the sampler supports SelectNewSamplesOnUpdate().

Reimplemented from itk::ImageSamplerBase< TInputImage >.

Definition at line 133 of file itkImageGridSampler.h.

## SelectNewSamplesOnUpdate()

template<class TInputImage>

bool itk::ImageGridSampler< TInputImage >::SelectNewSamplesOnUpdate | ( |  | ) |

inline override virtual

Selecting new samples makes no sense if nothing changed. The same samples would be selected anyway.

Reimplemented from itk::ImageSamplerBase< TInputImage >.

Definition at line 125 of file itkImageGridSampler.h.

## SetNumberOfSamples()

template<class TInputImage>

void itk::ImageGridSampler< TInputImage >::SetNumberOfSamples | ( | unsigned long | nrofsamples | ) |

override virtual

Define an isotropic SampleGridSpacing such that the desired number of samples is approximately realized. The following formula is used:

spacing = max[ 1, round( (availablevoxels / nrofsamples)^(1/dimension) ) ], with availablevoxels = nr of voxels in bounding box of the mask.

The InputImageRegion needs to be specified beforehand. However, the sample grid spacing is recomputed in the update phase, when the bounding box of the mask is known. Supplying nrofsamples=0 turns off the (re)computation of the SampleGridSpacing. Once nrofsamples=0 has been given, the last computed SampleGridSpacing is simply considered as a user parameter, which is not modified automatically anymore.

This function overrules any previous calls to SetSampleGridSpacing.

Reimplemented from itk::ImageSamplerBase< TInputImage >.

## SetSampleGridSpacing()

template<class TInputImage>

void itk::ImageGridSampler< TInputImage >::SetSampleGridSpacing | ( | const SampleGridSpacingType & | arg | ) |

Set/Get the sample grid spacing for each dimension (only integer factors) This function overrules previous calls to SetNumberOfSamples. Moreover, it calls SetNumberOfSamples(0) (see below), to make sure that the user-set sample grid spacing is never overruled.

## SingleThreadedGenerateData()

template<class TInputImage>

void itk::ImageGridSampler< TInputImage >::SingleThreadedGenerateData | ( | const TInputImage & | inputImage,
|  | const MaskType *const | mask,
|  | const InputImageRegionType & | croppedInputImageRegion,
|  | const SampleGridSpacingType & | gridSpacing,
|  | std::vector< ImageSampleType > & | samples )

static private

## ThreaderCallback()

template<class TInputImage>
template<elastix::MaskCondition VMaskCondition>

ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION itk::ImageGridSampler< TInputImage >::ThreaderCallback | ( | void * | arg | ) |

static private

## Field Documentation

## m_RequestedNumberOfSamples

template<class TInputImage>

unsigned long itk::ImageGridSampler< TInputImage >::m_RequestedNumberOfSamples { 0 }

private

The number of samples entered in the SetNumberOfSamples method

Definition at line 250 of file itkImageGridSampler.h.

## m_SampleGridSpacing

template<class TInputImage>

SampleGridSpacingType itk::ImageGridSampler< TInputImage >::m_SampleGridSpacing { itk::MakeFilled<SampleGridSpacingType>(1) }

private

An array of integer spacing factors

Definition at line 247 of file itkImageGridSampler.h.

Generated on 1768596610 for elastix by 1.15.0 |