18 #ifndef __itkPCAMetric_h
19 #define __itkPCAMetric_h
23 #include "itkSmoothingRecursiveGaussianImageFilter.h"
25 #include "itkNearestNeighborInterpolateImageFunction.h"
26 #include "itkExtractImageFilter.h"
32 template<
class TFixedImage,
class TMovingImage >
55 itkSetMacro( SampleLastDimensionRandomly,
bool );
56 itkSetMacro( NumSamplesLastDimension,
unsigned int );
57 itkSetMacro( NumAdditionalSamplesFixed,
unsigned int );
58 itkSetMacro( ReducedDimensionIndex,
unsigned int );
59 itkSetMacro( SubtractMean,
bool );
61 itkSetMacro( TransformIsStackTransform,
bool );
62 itkSetMacro( NumEigenValues,
unsigned int );
63 itkSetMacro( UseDerivativeOfMean,
bool );
64 itkSetMacro( DeNoise,
bool );
65 itkSetMacro( VarNoise,
double );
68 itkGetConstMacro( SampleLastDimensionRandomly,
bool );
69 itkGetConstMacro( NumSamplesLastDimension,
int );
87 typedef typename Superclass::RealType
RealType;
118 FixedImageType::ImageDimension );
122 MovingImageType::ImageDimension );
145 void PrintSelf( std::ostream & os, Indent indent )
const;
154 typedef typename itk::ContinuousIndex< CoordinateRepresentationType, FixedImageDimension >
188 void SampleRandom(
const int n,
const int m, std::vector< int > & numbers )
const;
218 #ifndef ITK_MANUAL_INSTANTIATION
219 #include "itkPCAMetric.hxx"
An extension of the ITK ImageToImageMetric. It is the intended base class for all elastix metrics.
Superclass::TransformParametersType TransformParametersType
Superclass::TransformJacobianType TransformJacobianType
Superclass::DerivativeType DerivativeType
Superclass::MeasureType MeasureType
BSplineInterpolatorType::CovariantVectorType MovingImageDerivativeType
Superclass::TransformPointer TransformPointer
Superclass::FixedImageLimiterType FixedImageLimiterType
unsigned int m_NumSamplesLastDimension
Superclass::MovingImagePointType MovingImagePointType
unsigned int m_NumEigenValues
Superclass::InterpolatorPointer InterpolatorPointer
vnl_vector< double > m_fourthEigenVector
Superclass::DerivativeType DerivativeType
itkStaticConstMacro(FixedImageDimension, unsigned int, FixedImageType::ImageDimension)
vnl_vector< double > m_thirdEigenVector
Superclass::MovingImageLimiterOutputType MovingImageLimiterOutputType
void PrintSelf(std::ostream &os, Indent indent) const
Superclass::ImageSamplerType ImageSamplerType
virtual void Initialize(void)
Superclass::MovingImageContinuousIndexType MovingImageContinuousIndexType
Superclass::GradientImagePointer GradientImagePointer
Superclass::GradientImageFilterPointer GradientImageFilterPointer
Superclass::ImageSamplerPointer ImageSamplerPointer
bool m_SampleLastDimensionRandomly
itk::ContinuousIndex< CoordinateRepresentationType, FixedImageDimension > FixedImageContinuousIndexType
Superclass::MovingImageType MovingImageType
vnl_vector< double > m_secondEigenVector
Superclass::MovingImagePixelType MovingImagePixelType
vnl_vector< double > m_normdCdmu
Superclass::FixedImageConstPointer FixedImageConstPointer
vnl_vector< double > m_sixthEigenVector
Superclass::CentralDifferenceGradientFilterType CentralDifferenceGradientFilterType
FixedImageSizeType m_GridSize
Superclass::MovingImageIndexType MovingImageIndexType
Superclass::OutputPointType OutputPointType
Superclass::NonZeroJacobianIndicesType NonZeroJacobianIndicesType
Superclass::MeasureType MeasureType
void EvaluateTransformJacobianInnerProduct(const TransformJacobianType &jacobian, const MovingImageDerivativeType &movingImageDerivative, DerivativeType &imageJacobian) const
Superclass::InputPointType InputPointType
vnl_vector< double > m_firstEigenVector
virtual MeasureType GetValue(const TransformParametersType ¶meters) const
Superclass::FixedImageMaskPointer FixedImageMaskPointer
Superclass::MovingImageMaskType MovingImageMaskType
bool m_TransformIsStackTransform
Superclass::ImageSampleContainerType ImageSampleContainerType
vnl_vector< double > m_fifthEigenVector
Superclass::MovingImageRegionType MovingImageRegionType
Superclass::GradientPixelType GradientPixelType
void operator=(const Self &)
Superclass::TransformJacobianType TransformJacobianType
Superclass::BSplineInterpolatorType BSplineInterpolatorType
virtual void GetDerivative(const TransformParametersType ¶meters, DerivativeType &derivative) const
Superclass::MovingImageDerivativeType MovingImageDerivativeType
Superclass::RealType RealType
AdvancedImageToImageMetric< TFixedImage, TMovingImage > Superclass
Superclass::MovingImageDerivativeScalesType MovingImageDerivativeScalesType
unsigned int m_NumAdditionalSamplesFixed
Superclass::MovingImageConstPointer MovingImageConstPointer
Superclass::CoordinateRepresentationType CoordinateRepresentationType
itkStaticConstMacro(MovingImageDimension, unsigned int, MovingImageType::ImageDimension)
void SampleRandom(const int n, const int m, std::vector< int > &numbers) const
Superclass::FixedImageLimiterOutputType FixedImageLimiterOutputType
Superclass::GradientImageType GradientImageType
Superclass::InterpolatorType InterpolatorType
Superclass::ParametersType ParametersType
Superclass::FixedImageRegionType FixedImageRegionType
Superclass::GradientImageFilterType GradientImageFilterType
Superclass::FixedImagePointType FixedImagePointType
SmartPointer< Self > Pointer
virtual void GetValueAndDerivative(const TransformParametersType ¶meters, MeasureType &Value, DerivativeType &Derivative) const
Superclass::MovingImageLimiterType MovingImageLimiterType
Superclass::FixedImagePixelType FixedImagePixelType
Superclass::MovingImageMaskPointer MovingImageMaskPointer
Superclass::FixedImageIndexType FixedImageIndexType
Superclass::FixedImageMaskType FixedImageMaskType
vnl_vector< double > m_seventhEigenVector
Superclass::ImageSampleContainerPointer ImageSampleContainerPointer
FixedImageRegionType::SizeType FixedImageSizeType
Superclass::TransformParametersType TransformParametersType
vnl_vector< double > m_eigenValues
Superclass::FixedImageIndexValueType FixedImageIndexValueType
unsigned int m_ReducedDimensionIndex
SmartPointer< const Self > ConstPointer
Superclass::TransformType TransformType
bool m_UseDerivativeOfMean
Superclass::FixedImageType FixedImageType