30 #ifndef __itkGradientDifferenceImageToImageMetric2_h
31 #define __itkGradientDifferenceImageToImageMetric2_h
35 #include "itkSobelOperator.h"
36 #include "itkNeighborhoodOperatorImageFilter.h"
38 #include "itkCastImageFilter.h"
39 #include "itkResampleImageFilter.h"
40 #include "itkOptimizer.h"
70 template <
class TFixedImage,
class TMovingImage >
91 #if defined(_MSC_VER) && (_MSC_VER == 1300)
94 typedef typename Superclass::RealType
RealType;
116 itkStaticConstMacro( FixedImageDimension,
unsigned int,
117 FixedImageType::ImageDimension );
118 itkStaticConstMacro( MovedImageDimension,
unsigned int,
119 MovingImageType::ImageDimension );
124 typedef itk::Image< FixedImagePixelType, itkGetStaticConstMacro( FixedImageDimension ) >
126 typedef itk::ResampleImageFilter< MovingImageType, TransformedMovingImageType >
131 typedef itk::Image< RealType, itkGetStaticConstMacro( FixedImageDimension ) >
133 typedef itk::CastImageFilter< FixedImageType, FixedGradientImageType >
137 typedef itk::Image< RealType, itkGetStaticConstMacro( MovedImageDimension ) >
139 typedef itk::CastImageFilter< TransformedMovingImageType, MovedGradientImageType >
155 virtual void Initialize(
void) throw ( ExceptionObject );
158 void WriteGradientImagesToFiles(
void) const;
162 itkGetConstReferenceMacro( Scales, ScalesType );
166 itkSetMacro( DerivativeDelta,
double );
167 itkGetConstReferenceMacro( DerivativeDelta,
double );
171 virtual ~GradientDifferenceImageToImageMetric() {};
172 void PrintSelf(std::ostream& os, Indent indent)
const;
175 void ComputeMovedGradientRange(
void )
const;
178 void ComputeVariance(
void )
const;
181 MeasureType ComputeMeasure(
const TransformParametersType ¶meters,
182 const double *subtractionFactor )
const;
184 typedef NeighborhoodOperatorImageFilter<
187 typedef NeighborhoodOperatorImageFilter<
192 void operator=(
const Self&);
212 itkGetStaticConstMacro(FixedImageDimension) >
213 m_FixedSobelOperators[FixedImageDimension];
215 typename FixedSobelFilter::Pointer m_FixedSobelFilters[itkGetStaticConstMacro
216 ( FixedImageDimension )];
225 itkGetStaticConstMacro(MovedImageDimension) >
226 m_MovedSobelOperators[MovedImageDimension];
228 typename MovedSobelFilter::Pointer m_MovedSobelFilters[itkGetStaticConstMacro
229 ( MovedImageDimension )];
242 #ifndef ITK_MANUAL_INSTANTIATION
243 #include "itkGradientDifferenceImageToImageMetric2.hxx"
Superclass::MeasureType MeasureType
SmartPointer< Self > Pointer
AdvancedImageToImageMetric< TFixedImage, TMovingImage > Superclass
NeighborhoodOperatorImageFilter< FixedGradientImageType, FixedGradientImageType > FixedSobelFilter
Superclass::TransformParametersType TransformParametersType
itk::AdvancedCombinationTransform< ScalarType, FixedImageDimension > CombinationTransformType
Superclass::MovingImageType MovingImageType
TFixedImage::PixelType FixedImagePixelType
An extension of the ITK ImageToImageMetric. It is the intended base class for all elastix metrics...
TMovingImage::PixelType MovedImagePixelType
CastFixedImageFilterPointer m_CastFixedImageFilter
GradientDifferenceImageToImageMetric Self
CastFixedImageFilterType::Pointer CastFixedImageFilterPointer
Superclass::TransformType TransformType
OptimizerType::ScalesType ScalesType
RayCastInterpolatorType::Pointer RayCastInterpolatorPointer
CombinationTransformPointer m_CombinationTransform
CastMovedImageFilterType::Pointer CastMovedImageFilterPointer
Superclass::FixedImageType FixedImageType
InterpolatorType::Pointer InterpolatorPointer
Superclass::DerivativeType DerivativeType
itk::Image< FixedImagePixelType, itkGetStaticConstMacro(FixedImageDimension) > TransformedMovingImageType
SmartPointer< Self > Pointer
Superclass::MeasureType MeasureType
SmartPointer< const Self > ConstPointer
itk::Image< RealType, itkGetStaticConstMacro(FixedImageDimension) > FixedGradientImageType
itk::Optimizer OptimizerType
Superclass::RealType RealType
TransformType::ScalarType ScalarType
Superclass::FixedImageConstPointer FixedImageConstPointer
NeighborhoodOperatorImageFilter< MovedGradientImageType, MovedGradientImageType > MovedSobelFilter
itk::ResampleImageFilter< MovingImageType, TransformedMovingImageType > TransformMovingImageFilterType
Superclass::MovingImageType MovingImageType
MovedGradientImageType::PixelType MovedGradientPixelType
ZeroFluxNeumannBoundaryCondition< FixedGradientImageType > m_FixedBoundCond
itk::Image< RealType, itkGetStaticConstMacro(MovedImageDimension) > MovedGradientImageType
TransformMovingImageFilterType::Pointer m_TransformMovingImageFilter
Superclass::TransformPointer TransformPointer
Superclass::MovingImageConstPointer MovingImageConstPointer
FixedGradientImageType::PixelType FixedGradientPixelType
Projective interpolation of an image at specified positions.
CastMovedImageFilterPointer m_CastMovedImageFilter
Superclass::TransformParametersType TransformParametersType
Computes similarity between two objects to be registered.
itk::CastImageFilter< TransformedMovingImageType, MovedGradientImageType > CastMovedImageFilterType
MovingImageType::RegionType MovingImageRegionType
Superclass::RealType RealType
Superclass::TransformJacobianType TransformJacobianType
itk::AdvancedRayCastInterpolateImageFunction< MovingImageType, ScalarType > RayCastInterpolatorType
itk::CastImageFilter< FixedImageType, FixedGradientImageType > CastFixedImageFilterType
Superclass::InterpolatorType InterpolatorType
CombinationTransformType::Pointer CombinationTransformPointer
TransformType::ScalarType ScalarType
ZeroFluxNeumannBoundaryCondition< MovedGradientImageType > m_MovedBoundCond
Superclass::DerivativeType DerivativeType