34 #ifndef __itkGradientDifferenceImageToImageMetric2_h 35 #define __itkGradientDifferenceImageToImageMetric2_h 39 #include "itkSobelOperator.h" 40 #include "itkNeighborhoodOperatorImageFilter.h" 42 #include "itkCastImageFilter.h" 43 #include "itkResampleImageFilter.h" 44 #include "itkOptimizer.h" 74 template<
class TFixedImage,
class TMovingImage >
95 #if defined( _MSC_VER ) && ( _MSC_VER == 1300 ) 121 FixedImageType::ImageDimension );
123 MovingImageType::ImageDimension );
128 typedef itk::Image< FixedImagePixelType, itkGetStaticConstMacro( FixedImageDimension ) >
130 typedef itk::ResampleImageFilter< MovingImageType, TransformedMovingImageType >
135 typedef itk::Image< RealType, itkGetStaticConstMacro( FixedImageDimension ) >
137 typedef itk::CastImageFilter< FixedImageType, FixedGradientImageType >
141 typedef itk::Image< RealType, itkGetStaticConstMacro( MovedImageDimension ) >
143 typedef itk::CastImageFilter< TransformedMovingImageType, MovedGradientImageType >
149 void GetDerivative(
const TransformParametersType & parameters,
150 DerivativeType & derivative )
const;
153 MeasureType
GetValue(
const TransformParametersType & parameters )
const;
157 MeasureType & Value, DerivativeType & derivative )
const;
159 virtual void Initialize(
void ) throw ( ExceptionObject );
165 itkSetMacro( Scales, ScalesType );
166 itkGetConstReferenceMacro( Scales, ScalesType );
170 itkSetMacro( DerivativeDelta,
double );
171 itkGetConstReferenceMacro( DerivativeDelta,
double );
176 virtual ~GradientDifferenceImageToImageMetric() {}
177 void PrintSelf( std::ostream & os, Indent indent )
const;
186 MeasureType
ComputeMeasure(
const TransformParametersType & parameters,
187 const double * subtractionFactor )
const;
189 typedef NeighborhoodOperatorImageFilter<
192 typedef NeighborhoodOperatorImageFilter<
201 mutable MovedGradientPixelType
m_Variance[ FixedImageDimension ];
218 itkGetStaticConstMacro( FixedImageDimension ) >
222 ( FixedImageDimension ) ];
231 itkGetStaticConstMacro( MovedImageDimension ) >
235 ( MovedImageDimension ) ];
246 #ifndef ITK_MANUAL_INSTANTIATION 247 #include "itkGradientDifferenceImageToImageMetric2.hxx"
Superclass::MeasureType MeasureType
MeasureType ComputeMeasure(const TransformParametersType ¶meters, const double *subtractionFactor) const
NeighborhoodOperatorImageFilter< FixedGradientImageType, FixedGradientImageType > FixedSobelFilter
Superclass::TransformParametersType TransformParametersType
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
SobelOperator< FixedGradientPixelType, itkGetStaticConstMacro(FixedImageDimension) > m_FixedSobelOperators[FixedImageDimension]
CastFixedImageFilterPointer m_CastFixedImageFilter
GradientDifferenceImageToImageMetric Self
FixedGradientPixelType m_MinFixedGradient[FixedImageDimension]
CastFixedImageFilterType::Pointer CastFixedImageFilterPointer
Superclass::TransformType TransformType
Superclass::TransformType TransformType
OptimizerType::ScalesType ScalesType
RayCastInterpolatorType::Pointer RayCastInterpolatorPointer
virtual void Initialize(void)
CombinationTransformPointer m_CombinationTransform
CastMovedImageFilterType::Pointer CastMovedImageFilterPointer
MovedGradientPixelType m_Variance[FixedImageDimension]
FixedSobelFilter::Pointer m_FixedSobelFilters[itkGetStaticConstMacro(FixedImageDimension)]
Superclass::FixedImageType FixedImageType
void PrintSelf(std::ostream &os, Indent indent) const
InterpolatorType::Pointer InterpolatorPointer
Superclass::DerivativeType DerivativeType
void GetDerivative(const TransformParametersType ¶meters, DerivativeType &derivative) const
itk::Image< FixedImagePixelType, itkGetStaticConstMacro(FixedImageDimension) > TransformedMovingImageType
itk::AdvancedCombinationTransform< ScalarType, FixedImageDimension > CombinationTransformType
Superclass::MeasureType MeasureType
MovedSobelFilter::Pointer m_MovedSobelFilters[itkGetStaticConstMacro(MovedImageDimension)]
SmartPointer< Self > Pointer
itk::Image< RealType, itkGetStaticConstMacro(FixedImageDimension) > FixedGradientImageType
itk::Optimizer OptimizerType
SmartPointer< const Self > ConstPointer
Superclass::RealType RealType
FixedGradientPixelType m_MaxFixedGradient[FixedImageDimension]
void WriteGradientImagesToFiles(void) const
Superclass::FixedImageConstPointer FixedImageConstPointer
itkStaticConstMacro(FixedImageDimension, unsigned int, FixedImageType::ImageDimension)
Superclass::FixedImageType FixedImageType
NeighborhoodOperatorImageFilter< MovedGradientImageType, MovedGradientImageType > MovedSobelFilter
itk::ResampleImageFilter< MovingImageType, TransformedMovingImageType > TransformMovingImageFilterType
Superclass::TransformPointer TransformPointer
MovedGradientPixelType m_MinMovedGradient[MovedImageDimension]
Superclass::MovingImageType MovingImageType
MovedGradientImageType::PixelType MovedGradientPixelType
ZeroFluxNeumannBoundaryCondition< FixedGradientImageType > m_FixedBoundCond
itk::Image< RealType, itkGetStaticConstMacro(MovedImageDimension) > MovedGradientImageType
AdvancedImageToImageMetric< TFixedImage, TMovingImage > Superclass
void operator=(const Self &)
TransformMovingImageFilterType::Pointer m_TransformMovingImageFilter
Superclass::TransformPointer TransformPointer
Superclass::MovingImageConstPointer MovingImageConstPointer
FixedGradientImageType::PixelType FixedGradientPixelType
Superclass::InterpolatorType InterpolatorType
Projective interpolation of an image at specified positions.
Superclass::TransformJacobianType TransformJacobianType
CastMovedImageFilterPointer m_CastMovedImageFilter
void ComputeMovedGradientRange(void) const
Superclass::TransformParametersType TransformParametersType
Computes similarity between two objects to be registered.
void ComputeVariance(void) const
itk::CastImageFilter< TransformedMovingImageType, MovedGradientImageType > CastMovedImageFilterType
MovingImageType::RegionType MovingImageRegionType
SobelOperator< MovedGradientPixelType, itkGetStaticConstMacro(MovedImageDimension) > m_MovedSobelOperators[MovedImageDimension]
Superclass::RealType RealType
void GetValueAndDerivative(const TransformParametersType ¶meters, MeasureType &Value, DerivativeType &derivative) const
Superclass::TransformJacobianType TransformJacobianType
itk::AdvancedRayCastInterpolateImageFunction< MovingImageType, ScalarType > RayCastInterpolatorType
MovedGradientPixelType m_MaxMovedGradient[MovedImageDimension]
itk::CastImageFilter< FixedImageType, FixedGradientImageType > CastFixedImageFilterType
Superclass::InterpolatorType InterpolatorType
CombinationTransformType::Pointer CombinationTransformPointer
TransformType::ScalarType ScalarType
Superclass::FixedImageConstPointer FixedImageConstPointer
ZeroFluxNeumannBoundaryCondition< MovedGradientImageType > m_MovedBoundCond
Superclass::MovingImageConstPointer MovingImageConstPointer
Superclass::DerivativeType DerivativeType
GradientDifferenceImageToImageMetric()
MeasureType GetValue(const TransformParametersType ¶meters) const