go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkPatternIntensityImageToImageMetric.h
Go to the documentation of this file.
1 /*======================================================================
2 
3  This file is part of the elastix software.
4 
5  Copyright (c) University Medical Center Utrecht. All rights reserved.
6  See src/CopyrightElastix.txt or http://elastix.isi.uu.nl/legal.php for
7  details.
8 
9  This software is distributed WITHOUT ANY WARRANTY; without even
10  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11  PURPOSE. See the above copyright notices for more information.
12 
13 ======================================================================*/
14 #ifndef __itkPatternIntensityImageToImageMetric_h
15 #define __itkPatternIntensityImageToImageMetric_h
16 
18 
19 #include "itkPoint.h"
20 #include "itkCastImageFilter.h"
21 #include "itkResampleImageFilter.h"
22 #include "itkMultiplyImageFilter.h"
23 #include "itkSubtractImageFilter.h"
24 #include "itkOptimizer.h"
25 #include "itkRescaleIntensityImageFilter.h"
28 
29 namespace itk
30 {
31 
40 template< class TFixedImage, class TMovingImage >
42  public AdvancedImageToImageMetric< TFixedImage, TMovingImage >
43 {
44 public:
45 
49  TFixedImage, TMovingImage > Superclass;
50  typedef SmartPointer< Self > Pointer;
51  typedef SmartPointer< const Self > ConstPointer;
52 
54  itkNewMacro( Self );
55 
57  itkTypeMacro( PatternIntensityImageToImageMetric, ImageToImageMetric );
58 
60  typedef typename
70  typedef typename TransformType::ScalarType ScalarType;
78  typedef typename Superclass::RealType RealType;
96  typedef typename
100  typedef typename
102  typedef typename
104  typedef typename
106  typedef typename itk::Optimizer OptimizerType;
107  typedef typename OptimizerType::ScalesType ScalesType;
108 
110  itkStaticConstMacro( FixedImageDimension, unsigned int,
111  FixedImageType::ImageDimension );
112 
113  typedef itk::Image< FixedImagePixelType,
114  itkGetStaticConstMacro( FixedImageDimension ) > TransformedMovingImageType;
115  typedef typename itk::AdvancedCombinationTransform<
116  ScalarType, FixedImageDimension > CombinationTransformType;
121  typedef itk::ResampleImageFilter<
123  typedef typename TransformMovingImageFilterType::Pointer TransformMovingImageFilterPointer;
124  typedef itk::RescaleIntensityImageFilter<
126  typedef typename RescaleIntensityImageFilterType::Pointer RescaleIntensityImageFilterPointer;
127 
128  typedef itk::SubtractImageFilter<
132  typedef typename DifferenceImageFilterType::Pointer DifferenceImageFilterPointer;
133  typedef itk::MultiplyImageFilter<
137  typedef typename MultiplyImageFilterType::Pointer MultiplyImageFilterPointer;
138 
140  itkStaticConstMacro( MovingImageDimension, unsigned int,
141  MovingImageType::ImageDimension );
142 
144  virtual MeasureType GetValue( const TransformParametersType & parameters ) const;
145 
147  virtual void GetDerivative( const TransformParametersType & parameters,
148  DerivativeType & derivative ) const;
149 
151  virtual void GetValueAndDerivative( const TransformParametersType & parameters,
152  MeasureType & Value, DerivativeType & Derivative ) const;
153 
159  virtual void Initialize( void ) throw ( ExceptionObject );
160 
162  itkSetMacro( Scales, ScalesType );
163  itkGetConstReferenceMacro( Scales, ScalesType );
164 
166  itkSetMacro( NoiseConstant, double );
167  itkGetConstReferenceMacro( NoiseConstant, double );
168 
170  itkSetMacro( OptimizeNormalizationFactor, bool );
171  itkGetConstReferenceMacro( OptimizeNormalizationFactor, bool );
172 
173 protected:
174 
176  virtual ~PatternIntensityImageToImageMetric() {}
177  void PrintSelf( std::ostream & os, Indent indent ) const;
178 
180  MeasureType ComputePIFixed( void ) const;
181 
183  MeasureType ComputePIDiff( const TransformParametersType & parameters, float scalingfactor ) const;
184 
185 private:
186 
187  PatternIntensityImageToImageMetric( const Self & ); // purposely not implemented
188  void operator=( const Self & ); // purposely not implemented
189 
195  unsigned int m_NeighborhoodRadius;
203 
204 };
205 
206 } // end namespace itk
207 
208 #ifndef ITK_MANUAL_INSTANTIATION
209 #include "itkPatternIntensityImageToImageMetric.hxx"
210 #endif
211 
212 #endif // end #ifndef __itkPatternIntensityImageToImageMetric_h
This class combines two transforms: an 'initial transform' with a 'current transform'.
AdvancedImageToImageMetric< TFixedImage, TMovingImage > Superclass
itkStaticConstMacro(FixedImageDimension, unsigned int, FixedImageType::ImageDimension)
LimiterFunctionBase< RealType, FixedImageDimension > FixedImageLimiterType
Superclass::CoordinateRepresentationType CoordinateRepresentationType
Superclass::TransformParametersType TransformParametersType
Superclass::MovingImageType MovingImageType
Superclass::FixedImageMaskPointer FixedImageMaskPointer
An extension of the ITK ImageToImageMetric. It is the intended base class for all elastix metrics...
Superclass::FixedImageLimiterOutputType FixedImageLimiterOutputType
Computes similarity between two objects to be registered.
Superclass::GradientPixelType GradientPixelType
FixedImageLimiterType::OutputType FixedImageLimiterOutputType
Superclass::FixedImageRegionType FixedImageRegionType
itk::AdvancedRayCastInterpolateImageFunction< MovingImageType, ScalarType > RayCastInterpolatorType
TransformMovingImageFilterType::Pointer TransformMovingImageFilterPointer
virtual void GetDerivative(const TransformParametersType &parameters, DerivativeType &derivative) const
ImageSamplerType::OutputVectorContainerType ImageSampleContainerType
Superclass::TransformParametersType TransformParametersType
Superclass::ImageSampleContainerType ImageSampleContainerType
DifferenceImageFilterType::Pointer DifferenceImageFilterPointer
itk::ResampleImageFilter< MovingImageType, TransformedMovingImageType > TransformMovingImageFilterType
Superclass::ImageSampleContainerPointer ImageSampleContainerPointer
FixedArray< double, Self::MovingImageDimension > MovingImageDerivativeScalesType
ImageSamplerBase< FixedImageType > ImageSamplerType
itk::RescaleIntensityImageFilter< TransformedMovingImageType, TransformedMovingImageType > RescaleIntensityImageFilterType
Superclass::MovingImageConstPointer MovingImageConstPointer
Superclass::GradientImageFilterPointer GradientImageFilterPointer
Superclass::InterpolatorPointer InterpolatorPointer
itk::Image< FixedImagePixelType, itkGetStaticConstMacro(FixedImageDimension) > TransformedMovingImageType
itk::SubtractImageFilter< FixedImageType, TransformedMovingImageType, TransformedMovingImageType > DifferenceImageFilterType
Superclass::MovingImageMaskType MovingImageMaskType
LimiterFunctionBase< RealType, MovingImageDimension > MovingImageLimiterType
virtual void GetValueAndDerivative(const TransformParametersType &parameters, MeasureType &Value, DerivativeType &Derivative) const
Superclass::GradientImageType GradientImageType
virtual MeasureType GetValue(const TransformParametersType &parameters) const
Superclass::TransformPointer TransformPointer
MeasureType ComputePIDiff(const TransformParametersType &parameters, float scalingfactor) const
itk::MultiplyImageFilter< TransformedMovingImageType, TransformedMovingImageType, TransformedMovingImageType > MultiplyImageFilterType
Superclass::GradientImageFilterType GradientImageFilterType
MovingImageType::RegionType MovingImageRegionType
Superclass::InterpolatorType InterpolatorType
RescaleIntensityImageFilterType::Pointer RescaleIntensityImageFilterPointer
Projective interpolation of an image at specified positions.
Superclass::TransformJacobianType TransformJacobianType
void PrintSelf(std::ostream &os, Indent indent) const
Superclass::GradientImageFilterType GradientImageFilterType
Superclass::MovingImagePixelType MovingImagePixelType
Superclass::CoordinateRepresentationType CoordinateRepresentationType
Superclass::MovingImageDerivativeScalesType MovingImageDerivativeScalesType
Superclass::MovingImageMaskPointer MovingImageMaskPointer
MovingImageLimiterType::OutputType MovingImageLimiterOutputType
MeasureType ComputePIFixed(void) const
Superclass::MovingImageLimiterOutputType MovingImageLimiterOutputType
ImageSamplerType::OutputVectorContainerPointer ImageSampleContainerPointer
Superclass::FixedImageMaskType FixedImageMaskType
itk::AdvancedCombinationTransform< ScalarType, FixedImageDimension > CombinationTransformType
Superclass::FixedImageConstPointer FixedImageConstPointer
Superclass::MovingImageConstPointer MovingImageConstPointer
Superclass::GradientImageFilterPointer GradientImageFilterPointer
Superclass::GradientImagePointer GradientImagePointer


Generated on 11-03-2014 for elastix by doxygen 1.8.6 elastix logo