18#ifndef itkImageFullSampler_h
19#define itkImageFullSampler_h
37template <
class TInputImage>
56 using typename Superclass::DataObjectPointer;
106 using Superclass::PrintSelf;
121 size_t NumberOfSamples{};
130 std::vector<WorkUnit> WorkUnits{};
133 template <elastix::MaskCondition VMaskCondition>
134 static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION
138 static std::vector<WorkUnit>
141 std::vector<ImageSampleType> & samples);
147 std::vector<ImageSampleType> & samples);
150 const ThreadIdType numberOfWorkUnits,
151 const TInputImage & inputImage,
154 std::vector<ImageSampleType> & samples);
157 template <elastix::MaskCondition VMaskCondition>
164#ifndef ITK_MANUAL_INSTANTIATION
165# include "itkImageFullSampler.hxx"
Samples all voxels in the InputImageRegion.
static void SingleThreadedGenerateData(const TInputImage &inputImage, const MaskType *const mask, const InputImageRegionType &croppedInputImageRegion, std::vector< ImageSampleType > &samples)
itkStaticConstMacro(InputImageDimension, unsigned int, Superclass::InputImageDimension)
static void GenerateDataForWorkUnit(WorkUnit &, const InputImageType &, const MaskType *)
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION ThreaderCallback(void *arg)
~ImageFullSampler() override=default
static std::vector< WorkUnit > GenerateWorkUnits(const ThreadIdType numberOfWorkUnits, const InputImageRegionType &croppedInputImageRegion, std::vector< ImageSampleType > &samples)
TInputImage InputImageType
ITK_DISALLOW_COPY_AND_MOVE(ImageFullSampler)
void GenerateData() override
typename InputImageType::RegionType InputImageRegionType
typename Superclass::MaskType MaskType
bool SelectNewSamplesOnUpdate() override
bool SelectingNewSamplesOnUpdateSupported() const override
SmartPointer< const Self > ConstPointer
ImageFullSampler()=default
static void MultiThreadedGenerateData(MultiThreaderBase &multiThreader, const ThreadIdType numberOfWorkUnits, const TInputImage &inputImage, const MaskType *const mask, const InputImageRegionType &croppedInputImageRegion, std::vector< ImageSampleType > &samples)
typename InputImageType::SizeType InputImageSizeType
A class that defines an image sample, which is the coordinates of a point and its value.
This class is a base class for any image sampler.
typename InputImageType::ConstPointer InputImageConstPointer
typename InputImageType::PointType InputImagePointType
TInputImage InputImageType
typename InputImageType::IndexType InputImageIndexType
typename InputImageType::RegionType InputImageRegionType
typename ImageSampleContainerType::Pointer ImageSampleContainerPointer
typename InputImageType::Pointer InputImagePointer
ImageMaskSpatialObject< Self::InputImageDimension > MaskType
typename InputImageType::PixelType InputImagePixelType
typename OutputVectorContainerType::Pointer OutputVectorContainerPointer
Define a front-end to the STL "vector" container that conforms to the IndexedContainerInterface.
const InputImageType & InputImage
ITK_DISALLOW_COPY_AND_MOVE(UserData)