go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxAdvancedMattesMutualInformationMetric.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 __elxAdvancedMattesMutualInformationMetric_H__
16 #define __elxAdvancedMattesMutualInformationMetric_H__
17 
18 #include "elxIncludes.h"
20 
21 #include "elxTimer.h"
22 
23 namespace elastix
24 {
25 using namespace itk;
26 
99  template <class TElastix >
101  public
103  ITK_TYPENAME MetricBase<TElastix>::FixedImageType,
104  ITK_TYPENAME MetricBase<TElastix>::MovingImageType >,
105  public MetricBase<TElastix>
106  {
107  public:
108 
115  typedef SmartPointer<Self> Pointer;
116  typedef SmartPointer<const Self> ConstPointer;
117 
119  itkNewMacro( Self );
120 
124 
129  elxClassNameMacro( "AdvancedMattesMutualInformation" );
130 
132  typedef typename
148  typedef typename Superclass1::RealType RealType;
166  typedef typename
170  typedef typename
172  typedef typename
174  typedef typename
176 
178  itkStaticConstMacro( FixedImageDimension, unsigned int,
179  FixedImageType::ImageDimension );
180 
182  itkStaticConstMacro( MovingImageDimension, unsigned int,
183  MovingImageType::ImageDimension );
184 
193 
198 
204  virtual void BeforeEachResolution( void );
205 
209  virtual void AfterEachIteration( void );
210 
213  virtual void Initialize(void) throw (ExceptionObject);
214 
216  itkSetMacro( Param_c, double );
217  itkGetConstMacro( Param_c, double );
218 
220  itkSetMacro( Param_gamma, double );
221  itkGetConstMacro( Param_gamma, double );
222 
224  itkSetMacro( CurrentIteration, unsigned int );
225  itkGetConstMacro( CurrentIteration, unsigned int );
226 
227  protected:
228 
231 
233  virtual ~AdvancedMattesMutualInformationMetric() {};
234 
235  unsigned long m_CurrentIteration;
236 
238  double Compute_c( unsigned long k ) const;
239 
240  private:
241 
243  AdvancedMattesMutualInformationMetric( const Self& ); // purposely not implemented
245  void operator=( const Self& ); // purposely not implemented
246 
247  double m_Param_c;
249 
250 
251 
252  }; // end class AdvancedMattesMutualInformationMetric
253 
254 
255 } // end namespace elastix
256 
257 
258 #ifndef ITK_MANUAL_INSTANTIATION
259 #include "elxAdvancedMattesMutualInformationMetric.hxx"
260 #endif
261 
262 #endif // end #ifndef __elxAdvancedMattesMutualInformationMetric_H__


Generated on 27-06-2013 for elastix by doxygen 1.8.3.1 elastix logo