18#ifndef __itkAdvancedMeanSquaresImageToImageMetric_h
19#define __itkAdvancedMeanSquaresImageToImageMetric_h
23#include "itkSmoothingRecursiveGaussianImageFilter.h"
25#include "itkNearestNeighborInterpolateImageFunction.h"
55template<
class TFixedImage,
class TMovingImage >
131 FixedImageType::ImageDimension );
135 MovingImageType::ImageDimension );
157 itkSetMacro( SelfHessianSmoothingSigma,
double );
158 itkGetConstMacro( SelfHessianSmoothingSigma,
double );
161 itkSetMacro( SelfHessianNoiseRange,
double );
162 itkGetConstMacro( SelfHessianNoiseRange,
double );
165 itkSetMacro( NumberOfSamplesForSelfHessian,
unsigned int );
166 itkGetConstMacro( NumberOfSamplesForSelfHessian,
unsigned int );
181 itkSetMacro( UseNormalization,
bool );
182 itkGetConstMacro( UseNormalization,
bool );
189 itkSetMacro( UseOpenMP,
bool );
196 void PrintSelf( std::ostream & os, Indent indent )
const override;
213 typedef SmoothingRecursiveGaussianImageFilter<
215 typedef BSplineInterpolateImageFunction<
217 typedef NearestNeighborInterpolateImageFunction<
267#ifndef ITK_MANUAL_INSTANTIATION
268#include "itkAdvancedMeanSquaresImageToImageMetric.hxx"
An extension of the ITK ImageToImageMetric. It is the intended base class for all elastix metrics.
BSplineInterpolateImageFunction< MovingImageType, CoordinateRepresentationType, double > BSplineInterpolatorType
Superclass::FixedImageConstPointer FixedImageConstPointer
ThreaderType::WorkUnitInfo ThreadInfoType
Superclass::TransformParametersType TransformParametersType
Superclass::InputPointType InputPointType
Superclass::MovingImageConstPointer MovingImageConstPointer
Superclass::FixedImageMaskPointer FixedImageMaskPointer
InterpolatorType::ContinuousIndexType MovingImageContinuousIndexType
Superclass::GradientImageFilterPointer GradientImageFilterPointer
DerivativeType::ValueType HessianValueType
Superclass::GradientImageFilterType GradientImageFilterType
ImageMaskSpatialObject< itkGetStaticConstMacro(MovingImageDimension) > MovingImageMaskSpatialObject2Type
Superclass::TransformJacobianType TransformJacobianType
FixedArray< double, Self::MovingImageDimension > MovingImageDerivativeScalesType
Superclass::GradientImagePointer GradientImagePointer
Superclass::DerivativeType DerivativeType
Superclass::TransformPointer TransformPointer
ImageSamplerType::OutputVectorContainerPointer ImageSampleContainerPointer
AdvancedTransformType::NonZeroJacobianIndicesType NonZeroJacobianIndicesType
Superclass::OutputPointType OutputPointType
ImageSamplerBase< FixedImageType > ImageSamplerType
Superclass::CoordinateRepresentationType CoordinateRepresentationType
ImageSamplerType::OutputVectorContainerType ImageSampleContainerType
Superclass::InterpolatorPointer InterpolatorPointer
Superclass::MovingImageMaskPointer MovingImageMaskPointer
Superclass::FixedImageType FixedImageType
TransformType::InputPointType FixedImagePointType
ImageSamplerType::Pointer ImageSamplerPointer
Superclass::MovingImageMaskType MovingImageMaskType
Superclass::GradientPixelType GradientPixelType
Superclass::MeasureType MeasureType
MovingImageType::IndexType MovingImageIndexType
MovingImageType::RegionType MovingImageRegionType
FixedImageLimiterType::OutputType FixedImageLimiterOutputType
FixedImageIndexType::IndexValueType FixedImageIndexValueType
Superclass::MovingImagePixelType MovingImagePixelType
MovingImageLimiterType::OutputType MovingImageLimiterOutputType
GradientImageFilter< MovingImageType, RealType, RealType > CentralDifferenceGradientFilterType
LimiterFunctionBase< RealType, MovingImageDimension > MovingImageLimiterType
ImageMaskSpatialObject< itkGetStaticConstMacro(FixedImageDimension) > FixedImageMaskSpatialObject2Type
BSplineInterpolatorType::CovariantVectorType MovingImageDerivativeType
Superclass::FixedImageMaskType FixedImageMaskType
Superclass::GradientImageType GradientImageType
FixedImageType::PixelType FixedImagePixelType
Superclass::InterpolatorType InterpolatorType
TransformType::OutputPointType MovingImagePointType
vnl_sparse_matrix< HessianValueType > HessianType
FixedImageType::IndexType FixedImageIndexType
Superclass::TransformType TransformType
DerivativeType::ValueType DerivativeValueType
Superclass::MovingImageType MovingImageType
LimiterFunctionBase< RealType, FixedImageDimension > FixedImageLimiterType
itk::PlatformMultiThreader ThreaderType
Superclass::RealType RealType
Superclass::FixedImageRegionType FixedImageRegionType
AdvancedTransformType::NumberOfParametersType NumberOfParametersType
Superclass::ParametersType ParametersType
Compute Mean square difference between two images, based on AdvancedImageToImageMetric....
Superclass::FixedImageMaskType FixedImageMaskType
void ThreadedGetValueAndDerivative(ThreadIdType threadID) override
Superclass::HessianValueType HessianValueType
Superclass::DerivativeValueType DerivativeValueType
Superclass::ImageSampleContainerType ImageSampleContainerType
Superclass::MovingImageLimiterType MovingImageLimiterType
Superclass::FixedImagePixelType FixedImagePixelType
Superclass::HessianType HessianType
SmartPointer< Self > Pointer
Superclass::GradientImageFilterType GradientImageFilterType
Superclass::FixedImageConstPointer FixedImageConstPointer
Superclass::MovingImagePointType MovingImagePointType
Superclass::RealType RealType
Superclass::InterpolatorType InterpolatorType
Superclass::MovingImageMaskType MovingImageMaskType
Superclass::MovingImageDerivativeScalesType MovingImageDerivativeScalesType
Superclass::CoordinateRepresentationType CoordinateRepresentationType
double m_SelfHessianNoiseRange
Superclass::ThreaderType ThreaderType
SmartPointer< const Self > ConstPointer
Superclass::FixedImageMaskSpatialObject2Type FixedImageMaskSpatialObject2Type
Superclass::FixedImageIndexType FixedImageIndexType
AdvancedMeanSquaresImageToImageMetric Self
Superclass::MovingImageContinuousIndexType MovingImageContinuousIndexType
void AfterThreadedGetValue(MeasureType &value) const override
unsigned int m_NumberOfSamplesForSelfHessian
Superclass::FixedImageType FixedImageType
Superclass::MovingImageLimiterOutputType MovingImageLimiterOutputType
Superclass::GradientPixelType GradientPixelType
void Initialize(void) override
void GetDerivative(const TransformParametersType ¶meters, DerivativeType &derivative) const override
void UpdateSelfHessianTerms(const DerivativeType &imageJacobian, const NonZeroJacobianIndicesType &nzji, HessianType &H) const
Superclass::NumberOfParametersType NumberOfParametersType
SmoothingRecursiveGaussianImageFilter< FixedImageType, FixedImageType > SmootherType
Superclass::MovingImagePixelType MovingImagePixelType
NearestNeighborInterpolateImageFunction< FixedImageType, CoordinateRepresentationType > DummyFixedImageInterpolatorType
void ThreadedGetValue(ThreadIdType threadID) override
Superclass::TransformParametersType TransformParametersType
Superclass::MovingImageConstPointer MovingImageConstPointer
Superclass::MovingImageMaskPointer MovingImageMaskPointer
void AfterThreadedGetValueAndDerivative(MeasureType &value, DerivativeType &derivative) const override
Superclass::ImageSampleContainerPointer ImageSampleContainerPointer
Superclass::MovingImageType MovingImageType
Superclass::GradientImageFilterPointer GradientImageFilterPointer
Superclass::MovingImageDerivativeType MovingImageDerivativeType
Superclass::ImageSamplerType ImageSamplerType
virtual MeasureType GetValueSingleThreaded(const TransformParametersType ¶meters) const
AdvancedMeanSquaresImageToImageMetric()
Superclass::InterpolatorPointer InterpolatorPointer
void GetSelfHessian(const TransformParametersType ¶meters, HessianType &H) const override
Superclass::BSplineInterpolatorType BSplineInterpolatorType
BSplineInterpolateImageFunction< FixedImageType, CoordinateRepresentationType > FixedImageInterpolatorType
Superclass::FixedImageIndexValueType FixedImageIndexValueType
Superclass::FixedImageMaskPointer FixedImageMaskPointer
Superclass::TransformType TransformType
AdvancedImageToImageMetric< TFixedImage, TMovingImage > Superclass
Superclass::MeasureType MeasureType
Superclass::GradientImagePointer GradientImagePointer
double m_NormalizationFactor
void GetValueAndDerivative(const TransformParametersType ¶meters, MeasureType &value, DerivativeType &derivative) const override
Superclass::CentralDifferenceGradientFilterType CentralDifferenceGradientFilterType
void PrintSelf(std::ostream &os, Indent indent) const override
Superclass::DerivativeType DerivativeType
ImageGridSampler< FixedImageType > SelfHessianSamplerType
Superclass::ImageSamplerPointer ImageSamplerPointer
Superclass::InputPointType InputPointType
Superclass::FixedImageRegionType FixedImageRegionType
~AdvancedMeanSquaresImageToImageMetric() override
itkStaticConstMacro(FixedImageDimension, unsigned int, FixedImageType::ImageDimension)
Superclass::NonZeroJacobianIndicesType NonZeroJacobianIndicesType
Superclass::FixedImageLimiterType FixedImageLimiterType
Superclass::FixedImagePointType FixedImagePointType
Superclass::TransformPointer TransformPointer
Superclass::ThreadInfoType ThreadInfoType
Superclass::MovingImageRegionType MovingImageRegionType
itkStaticConstMacro(MovingImageDimension, unsigned int, MovingImageType::ImageDimension)
double m_SelfHessianSmoothingSigma
Superclass::ParametersType ParametersType
void operator=(const Self &)
Superclass::OutputPointType OutputPointType
Superclass::TransformJacobianType TransformJacobianType
Superclass::FixedImageLimiterOutputType FixedImageLimiterOutputType
AdvancedMeanSquaresImageToImageMetric(const Self &)
void UpdateValueAndDerivativeTerms(const RealType fixedImageValue, const RealType movingImageValue, const DerivativeType &imageJacobian, const NonZeroJacobianIndicesType &nzji, MeasureType &measure, DerivativeType &deriv) const
Superclass::MovingImageIndexType MovingImageIndexType
void GetValueAndDerivativeSingleThreaded(const TransformParametersType ¶meters, MeasureType &value, DerivativeType &derivative) const
Superclass::MovingImageMaskSpatialObject2Type MovingImageMaskSpatialObject2Type
MeasureType GetValue(const TransformParametersType ¶meters) const override
Superclass::GradientImageType GradientImageType
Samples image voxels on a regular grid.