18#ifndef itkComputeDisplacementDistribution_h
19#define itkComputeDisplacementDistribution_h
27#include "itkPlatformMultiThreader.h"
47template <
class TFixedImage,
class TTransform>
71 using Superclass::ParametersType;
72 using Superclass::DerivativeType;
96 itkSetMacro(NumberOfJacobianMeasurements, SizeValueType);
102 if (region != this->m_FixedImageRegion)
104 this->m_FixedImageRegion = region;
114 Compute(
const ParametersType & mu,
double & jacg,
double & maxJJ, std::string method);
127 this->m_Threader->SetNumberOfWorkUnits(numberOfThreads);
191 static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION
216 itkAlignedTypedef(ITK_CACHE_LINE_ALIGNMENT, PaddedComputePerThreadStruct, AlignedComputePerThreadStruct);
230#ifndef ITK_MANUAL_INSTANTIATION
231# include "itkComputeDisplacementDistribution.hxx"
This is a helper class for the automatic parameter estimation of the ASGD optimizer.
typename ImageFullSamplerType::Pointer ImageFullSamplerPointer
typename FixedImageType::PointType FixedImagePointType
TransformPointer m_Transform
SizeValueType m_NumberOfPixelsCounted
typename FixedImageType::PixelType FixedImagePixelType
virtual void Compute(const ParametersType &mu, double &jacg, double &maxJJ, std::string method)
typename FixedImageMaskType::Pointer FixedImageMaskPointer
virtual void ComputeSingleThreaded(const ParametersType &mu, double &jacg, double &maxJJ, std::string method)
typename ImageGridSamplerType::Pointer ImageGridSamplerPointer
ThreaderType::WorkUnitInfo ThreadInfoType
itkPadStruct(ITK_CACHE_LINE_ALIGNMENT, ComputePerThreadStruct, PaddedComputePerThreadStruct)
virtual void ThreadedCompute(ThreadIdType threadID)
typename FixedImageType::IndexType FixedImageIndexType
FixedImageMaskConstPointer m_FixedImageMask
itkStaticConstMacro(FixedImageDimension, unsigned int, TFixedImage::ImageDimension)
FixedImageRegionType m_FixedImageRegion
ComputeDisplacementDistribution()
typename TransformType::JacobianType JacobianType
FixedImageType::ConstPointer m_FixedImage
virtual void SampleFixedImageForJacobianTerms(ImageSampleContainerPointer &sampleContainer)
virtual void ComputeUsingSearchDirection(const ParametersType &mu, double &jacg, double &maxJJ, std::string methods)
virtual void InitializeThreadingParameters()
itkAlignedTypedef(ITK_CACHE_LINE_ALIGNMENT, PaddedComputePerThreadStruct, AlignedComputePerThreadStruct)
typename ImageRandomSamplerBaseType::Pointer ImageRandomSamplerBasePointer
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION ComputeThreaderCallback(void *arg)
virtual void AfterThreadedCompute(double &jacg, double &maxJJ)
SizeValueType m_NumberOfParameters
void SetFixedImageRegion(const FixedImageRegionType ®ion)
ScaledSingleValuedCostFunction::Pointer m_CostFunction
typename FixedImageType::RegionType FixedImageRegionType
ITK_DISALLOW_COPY_AND_MOVE(ComputeDisplacementDistribution)
ImageSampleContainerPointer m_SampleContainer
~ComputeDisplacementDistribution() override=default
typename ImageSampleContainerType::Pointer ImageSampleContainerPointer
SizeValueType m_NumberOfJacobianMeasurements
void LaunchComputeThreaderCallback() const
SpatialObject< Self::FixedImageDimension > FixedImageMaskType
typename TransformType::NumberOfParametersType NumberOfParametersType
typename TransformType::NonZeroJacobianIndicesType NonZeroJacobianIndicesType
void SetNumberOfWorkUnits(ThreadIdType numberOfThreads)
typename ImageGridSamplerType ::ImageSampleContainerType ImageSampleContainerType
DerivativeType m_ExactGradient
itk::PlatformMultiThreader ThreaderType
std::vector< AlignedComputePerThreadStruct > m_ComputePerThreadVariables
TFixedImage FixedImageType
typename TransformType::Pointer TransformPointer
typename TransformType::ScalarType CoordinateRepresentationType
ThreaderType::Pointer m_Threader
SmartPointer< const Self > ConstPointer
typename JacobianType::ValueType JacobianValueType
JacobianType TransformJacobianType
MultiThreaderParameterType m_ThreaderParameters
typename ImageSamplerBaseType::Pointer ImageSamplerBasePointer
typename FixedImageMaskType::ConstPointer FixedImageMaskConstPointer
virtual void BeforeThreadedCompute(const ParametersType &mu)
Samples all voxels in the InputImageRegion.
Samples image voxels on a regular grid.
This class is a base class for any image sampler that randomly picks samples.
This class is a base class for any image sampler.
NonLinearOptimizer::ScalesType ScalesType
double st_DisplacementSquared
SizeValueType st_NumberOfPixelsCounted