go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
Loading...
Searching...
No Matches
itk::ImageGridSampler< TInputImage > Class Template Reference

#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 >:

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 SampleGridSpacingTypeGetSampleGridSpacing ()
 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 InputImageRegionTypeGetCroppedInputImageRegion ()
const InputImageTypeGetInput ()
const InputImageTypeGetInput (unsigned int idx)
virtual const InputImageRegionTypeGetInputImageRegion () const
virtual const InputImageRegionTypeGetInputImageRegion (unsigned int pos) const
virtual const MaskTypeGetMask () const
virtual const MaskTypeGetMask (unsigned int pos) const
virtual unsigned int GetNumberOfInputImageRegions () const
virtual unsigned int GetNumberOfMasks () const
virtual unsigned long GetNumberOfSamples () const
OutputVectorContainerTypeGetOutput ()
 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 > > >
OutputVectorContainerTypeGetOutput ()
OutputVectorContainerTypeGetOutput (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, SampleGridSizeTypeDetermineGridIndexAndSize (const InputImageRegionType &croppedInputImageRegion, const SampleGridSpacingType &gridSpacing)
template<elastix::MaskCondition VMaskCondition>
static void GenerateDataForWorkUnit (WorkUnit &, const InputImageType &, const MaskType *, const SampleGridSpacingType &)
static std::vector< WorkUnitGenerateWorkUnits (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< InputImageRegionTypeSplitRegion (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 ( )
protecteddefault

The constructor.

◆ ~ImageGridSampler()

template<class TInputImage>
itk::ImageGridSampler< TInputImage >::~ImageGridSampler ( )
overrideprotecteddefault

The destructor.

Member Function Documentation

◆ DetermineGridIndexAndSize()

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

Determine the grid.

◆ GenerateData()

template<class TInputImage>
void itk::ImageGridSampler< TInputImage >::GenerateData ( )
overrideprotected

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 &  )
staticprivate

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 )
staticprivate

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)
inlinestaticprivate

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 )
inlinestaticprivate

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 )
staticprivate

◆ 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
overrideprotected

PrintSelf.

◆ SelectingNewSamplesOnUpdateSupported()

template<class TInputImage>
bool itk::ImageGridSampler< TInputImage >::SelectingNewSamplesOnUpdateSupported ( ) const
inlineoverridevirtual

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 ( )
inlineoverridevirtual

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)
overridevirtual

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 )
staticprivate

◆ ThreaderCallback()

template<class TInputImage>
template<elastix::MaskCondition VMaskCondition>
ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION itk::ImageGridSampler< TInputImage >::ThreaderCallback ( void * arg)
staticprivate

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 doxygen 1.15.0 elastix logo