18 #ifndef __itkAdvancedMeanSquaresImageToImageMetric_h 19 #define __itkAdvancedMeanSquaresImageToImageMetric_h 23 #include "itkSmoothingRecursiveGaussianImageFilter.h" 25 #include "itkNearestNeighborInterpolateImageFunction.h" 55 template<
class TFixedImage,
class TMovingImage >
128 FixedImageType::ImageDimension );
132 MovingImageType::ImageDimension );
137 virtual MeasureType
GetValue(
const TransformParametersType & parameters )
const;
140 virtual void GetDerivative(
const TransformParametersType & parameters,
141 DerivativeType & derivative )
const;
145 MeasureType & value, DerivativeType & derivative )
const;
148 MeasureType & value, DerivativeType & derivative )
const;
151 virtual void GetSelfHessian(
const TransformParametersType & parameters, HessianType & H )
const;
154 itkSetMacro( SelfHessianSmoothingSigma,
double );
155 itkGetConstMacro( SelfHessianSmoothingSigma,
double );
158 itkSetMacro( SelfHessianNoiseRange,
double );
159 itkGetConstMacro( SelfHessianNoiseRange,
double );
162 itkSetMacro( NumberOfSamplesForSelfHessian,
unsigned int );
163 itkGetConstMacro( NumberOfSamplesForSelfHessian,
unsigned int );
169 virtual void Initialize(
void )
throw ( ExceptionObject );
178 itkSetMacro( UseNormalization,
bool );
179 itkGetConstMacro( UseNormalization,
bool );
186 itkSetMacro( UseOpenMP,
bool );
193 void PrintSelf( std::ostream & os, Indent indent )
const;
210 typedef SmoothingRecursiveGaussianImageFilter<
212 typedef BSplineInterpolateImageFunction<
214 typedef NearestNeighborInterpolateImageFunction<
223 const RealType fixedImageValue,
224 const RealType movingImageValue,
225 const DerivativeType & imageJacobian,
226 const NonZeroJacobianIndicesType & nzji,
227 MeasureType & measure,
228 DerivativeType & deriv )
const;
233 const DerivativeType & imageJacobian,
234 const NonZeroJacobianIndicesType & nzji,
235 HessianType & H )
const;
248 MeasureType & value, DerivativeType & derivative )
const;
264 #ifndef ITK_MANUAL_INSTANTIATION 265 #include "itkAdvancedMeanSquaresImageToImageMetric.hxx" 268 #endif // end #ifndef __itkAdvancedMeanSquaresImageToImageMetric_h Compute Mean square difference between two images, based on AdvancedImageToImageMetric...
Superclass::ParametersType ParametersType
Superclass::GradientPixelType GradientPixelType
Superclass::MeasureType MeasureType
virtual MeasureType GetValue(const TransformParametersType ¶meters) const
Superclass::MovingImageLimiterType MovingImageLimiterType
AdvancedTransformType::NumberOfParametersType NumberOfParametersType
Superclass::HessianValueType HessianValueType
Superclass::ImageSampleContainerPointer ImageSampleContainerPointer
void UpdateValueAndDerivativeTerms(const RealType fixedImageValue, const RealType movingImageValue, const DerivativeType &imageJacobian, const NonZeroJacobianIndicesType &nzji, MeasureType &measure, DerivativeType &deriv) const
DerivativeType::ValueType HessianValueType
Superclass::FixedImageMaskType FixedImageMaskType
Superclass::HessianType HessianType
Superclass::InputPointType InputPointType
Superclass::FixedImageRegionType FixedImageRegionType
LimiterFunctionBase< RealType, FixedImageDimension > FixedImageLimiterType
Superclass::CoordinateRepresentationType CoordinateRepresentationType
Superclass::TransformParametersType TransformParametersType
Superclass::MovingImageRegionType MovingImageRegionType
Superclass::ImageSampleContainerType ImageSampleContainerType
Superclass::MovingImageType MovingImageType
virtual void GetDerivative(const TransformParametersType ¶meters, DerivativeType &derivative) const
Superclass::GradientImagePointer GradientImagePointer
Superclass::MeasureType MeasureType
Superclass::FixedImageMaskPointer FixedImageMaskPointer
Superclass::FixedImageLimiterOutputType FixedImageLimiterOutputType
Superclass::OutputPointType OutputPointType
An extension of the ITK ImageToImageMetric. It is the intended base class for all elastix metrics...
Superclass::FixedImageIndexValueType FixedImageIndexValueType
Superclass::GradientPixelType GradientPixelType
Superclass::InputPointType InputPointType
FixedImageLimiterType::OutputType FixedImageLimiterOutputType
Superclass::NumberOfParametersType NumberOfParametersType
Superclass::TransformType TransformType
Superclass::TransformType TransformType
Superclass::FixedImageConstPointer FixedImageConstPointer
Superclass::FixedImageRegionType FixedImageRegionType
AdvancedImageToImageMetric< TFixedImage, TMovingImage > Superclass
Superclass::FixedImageIndexType FixedImageIndexType
ImageSamplerType::OutputVectorContainerType ImageSampleContainerType
MovingImageType::IndexType MovingImageIndexType
itk::MultiThreader ThreaderType
SmartPointer< Self > Pointer
Superclass::MovingImageContinuousIndexType MovingImageContinuousIndexType
InterpolatorType::ContinuousIndexType MovingImageContinuousIndexType
Superclass::DerivativeValueType DerivativeValueType
TransformType::InputPointType FixedImagePointType
Superclass::ThreadInfoType ThreadInfoType
Superclass::GradientImageType GradientImageType
Superclass::RealType RealType
Superclass::GradientImageFilterPointer GradientImageFilterPointer
Superclass::ParametersType ParametersType
FixedArray< double, Self::MovingImageDimension > MovingImageDerivativeScalesType
void UpdateSelfHessianTerms(const DerivativeType &imageJacobian, const NonZeroJacobianIndicesType &nzji, HessianType &H) const
BSplineInterpolateImageFunction< MovingImageType, CoordinateRepresentationType, double > BSplineInterpolatorType
double m_NormalizationFactor
ImageSamplerBase< FixedImageType > ImageSamplerType
AdvancedTransformType::NonZeroJacobianIndicesType NonZeroJacobianIndicesType
void ThreadedGetValue(ThreadIdType threadID)
Superclass::FixedImagePixelType FixedImagePixelType
Superclass::MovingImageLimiterOutputType MovingImageLimiterOutputType
Superclass::InterpolatorType InterpolatorType
void AfterThreadedGetValueAndDerivative(MeasureType &value, DerivativeType &derivative) const
Superclass::InterpolatorPointer InterpolatorPointer
FixedImageType::IndexType FixedImageIndexType
BSplineInterpolateImageFunction< FixedImageType, CoordinateRepresentationType > FixedImageInterpolatorType
Superclass::NonZeroJacobianIndicesType NonZeroJacobianIndicesType
Superclass::ThreaderType ThreaderType
virtual void GetValueAndDerivative(const TransformParametersType ¶meters, MeasureType &value, DerivativeType &derivative) const
Superclass::FixedImageMaskPointer FixedImageMaskPointer
Superclass::FixedImageLimiterType FixedImageLimiterType
Superclass::ImageSamplerType ImageSamplerType
void GetValueAndDerivativeSingleThreaded(const TransformParametersType ¶meters, MeasureType &value, DerivativeType &derivative) const
Superclass::MovingImageType MovingImageType
AdvancedMeanSquaresImageToImageMetric()
FixedImageIndexType::IndexValueType FixedImageIndexValueType
TransformType::OutputPointType MovingImagePointType
Superclass::FixedImageType FixedImageType
Superclass::MovingImageMaskPointer MovingImageMaskPointer
Superclass::MovingImageMaskType MovingImageMaskType
Superclass::MovingImageConstPointer MovingImageConstPointer
void AfterThreadedGetValue(MeasureType &value) const
LimiterFunctionBase< RealType, MovingImageDimension > MovingImageLimiterType
Superclass::GradientImageType GradientImageType
Superclass::TransformPointer TransformPointer
Superclass::TransformParametersType TransformParametersType
Superclass::CoordinateRepresentationType CoordinateRepresentationType
Superclass::GradientImageFilterType GradientImageFilterType
ImageSamplerType::Pointer ImageSamplerPointer
MovingImageType::RegionType MovingImageRegionType
itkStaticConstMacro(FixedImageDimension, unsigned int, FixedImageType::ImageDimension)
Superclass::InterpolatorType InterpolatorType
Superclass::TransformJacobianType TransformJacobianType
Superclass::TransformPointer TransformPointer
Superclass::CentralDifferenceGradientFilterType CentralDifferenceGradientFilterType
Superclass::FixedImageType FixedImageType
Superclass::MovingImageMaskType MovingImageMaskType
Superclass::TransformJacobianType TransformJacobianType
NearestNeighborInterpolateImageFunction< FixedImageType, CoordinateRepresentationType > DummyFixedImageInterpolatorType
Superclass::MovingImagePixelType MovingImagePixelType
GradientImageFilter< MovingImageType, RealType, RealType > CentralDifferenceGradientFilterType
Superclass::MovingImagePixelType MovingImagePixelType
Superclass::MovingImagePointType MovingImagePointType
Superclass::RealType RealType
virtual ~AdvancedMeanSquaresImageToImageMetric()
SmartPointer< const Self > ConstPointer
virtual void GetSelfHessian(const TransformParametersType ¶meters, HessianType &H) const
ImageGridSampler< FixedImageType > SelfHessianSamplerType
DerivativeType::ValueType DerivativeValueType
Superclass::MovingImageDerivativeScalesType MovingImageDerivativeScalesType
Superclass::MovingImageMaskPointer MovingImageMaskPointer
SmoothingRecursiveGaussianImageFilter< FixedImageType, FixedImageType > SmootherType
MovingImageLimiterType::OutputType MovingImageLimiterOutputType
unsigned int m_NumberOfSamplesForSelfHessian
double m_SelfHessianSmoothingSigma
ThreaderType::ThreadInfoStruct ThreadInfoType
Superclass::MovingImageDerivativeType MovingImageDerivativeType
Superclass::InterpolatorPointer InterpolatorPointer
Superclass::MovingImageIndexType MovingImageIndexType
FixedImageType::PixelType FixedImagePixelType
virtual MeasureType GetValueSingleThreaded(const TransformParametersType ¶meters) const
virtual void Initialize(void)
ImageSamplerType::OutputVectorContainerPointer ImageSampleContainerPointer
Superclass::FixedImageMaskType FixedImageMaskType
void ThreadedGetValueAndDerivative(ThreadIdType threadID)
void operator=(const Self &)
Superclass::ImageSamplerPointer ImageSamplerPointer
Superclass::DerivativeType DerivativeType
AdvancedMeanSquaresImageToImageMetric Self
Superclass::GradientImageFilterType GradientImageFilterType
double m_SelfHessianNoiseRange
Superclass::FixedImagePointType FixedImagePointType
Superclass::OutputPointType OutputPointType
Superclass::BSplineInterpolatorType BSplineInterpolatorType
BSplineInterpolatorType::CovariantVectorType MovingImageDerivativeType
void PrintSelf(std::ostream &os, Indent indent) const
Samples image voxels on a regular grid.
Superclass::FixedImageConstPointer FixedImageConstPointer
Superclass::MovingImageConstPointer MovingImageConstPointer
Superclass::DerivativeType DerivativeType
Superclass::GradientImageFilterPointer GradientImageFilterPointer
vnl_sparse_matrix< HessianValueType > HessianType
Superclass::GradientImagePointer GradientImagePointer