go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkAdvancedNormalizedCorrelationImageToImageMetric.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 
15 #ifndef __itkAdvancedNormalizedCorrelationImageToImageMetric_h
16 #define __itkAdvancedNormalizedCorrelationImageToImageMetric_h
17 
19 
20 
21 namespace itk
22 {
82 template < class TFixedImage, class TMovingImage >
84  public AdvancedImageToImageMetric< TFixedImage, TMovingImage >
85 {
86 public:
87 
91  TFixedImage, TMovingImage > Superclass;
92  typedef SmartPointer<Self> Pointer;
93  typedef SmartPointer<const Self> ConstPointer;
94 
96  itkNewMacro( Self );
97 
100 
102  typedef typename
118  typedef typename Superclass::RealType RealType;
136  typedef typename
140  typedef typename
142  typedef typename
144  typedef typename
146 
148  itkStaticConstMacro( FixedImageDimension, unsigned int,
149  FixedImageType::ImageDimension );
150 
152  itkStaticConstMacro( MovingImageDimension, unsigned int,
153  MovingImageType::ImageDimension );
154 
156  MeasureType GetValue( const TransformParametersType & parameters ) const;
157 
159  void GetDerivative( const TransformParametersType & parameters,
160  DerivativeType & Derivative ) const;
161 
163  void GetValueAndDerivative( const TransformParametersType & parameters,
164  MeasureType& Value, DerivativeType& Derivative ) const;
165 
170  itkSetMacro( SubtractMean, bool );
171  itkGetConstReferenceMacro( SubtractMean, bool );
172  itkBooleanMacro( SubtractMean );
173 
174 protected:
177  void PrintSelf( std::ostream& os, Indent indent ) const;
178 
192 
197  const TransformJacobianType & jacobian,
198  const MovingImageDerivativeType & movingImageDerivative,
199  DerivativeType & imageJacobian) const;
200 
204  const RealType fixedImageValue,
205  const RealType movingImageValue,
206  const DerivativeType & imageJacobian,
207  const NonZeroJacobianIndicesType & nzji,
208  DerivativeType & derivativeF,
209  DerivativeType & derivativeM,
210  DerivativeType & differential ) const;
211 
212 private:
213  AdvancedNormalizedCorrelationImageToImageMetric(const Self&); //purposely not implemented
214  void operator=(const Self&); //purposely not implemented
215 
217 
218 }; // end class AdvancedNormalizedCorrelationImageToImageMetric
219 
220 } // end namespace itk
221 
222 #ifndef ITK_MANUAL_INSTANTIATION
223 #include "itkAdvancedNormalizedCorrelationImageToImageMetric.txx"
224 #endif
225 
226 #endif // end #ifndef __itkAdvancedNormalizedCorrelationImageToImageMetric_h
227 


Generated on 21-03-2014 for elastix by doxygen 1.8.1.2 elastix logo