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 
98  template <class TElastix >
100  public
102  typename MetricBase<TElastix>::FixedImageType,
103  typename MetricBase<TElastix>::MovingImageType >,
104  public MetricBase<TElastix>
105  {
106  public:
107 
114  typedef itk::SmartPointer<Self> Pointer;
115  typedef itk::SmartPointer<const Self> ConstPointer;
116 
118  itkNewMacro( Self );
119 
123 
128  elxClassNameMacro( "AdvancedMattesMutualInformation" );
129 
131  typedef typename
147  typedef typename Superclass1::RealType RealType;
165  typedef typename
169  typedef typename
171  typedef typename
173  typedef typename
175 
177  itkStaticConstMacro( FixedImageDimension, unsigned int,
178  FixedImageType::ImageDimension );
179 
181  itkStaticConstMacro( MovingImageDimension, unsigned int,
182  MovingImageType::ImageDimension );
183 
192 
197 
203  virtual void BeforeEachResolution( void );
204 
208  virtual void AfterEachIteration( void );
209 
212  virtual void Initialize(void) throw (itk::ExceptionObject);
213 
215  itkSetMacro( Param_c, double );
216  itkGetConstMacro( Param_c, double );
217 
219  itkSetMacro( Param_gamma, double );
220  itkGetConstMacro( Param_gamma, double );
221 
223  itkSetMacro( CurrentIteration, unsigned int );
224  itkGetConstMacro( CurrentIteration, unsigned int );
225 
226  protected:
227 
230 
232  virtual ~AdvancedMattesMutualInformationMetric() {};
233 
234  unsigned long m_CurrentIteration;
235 
237  double Compute_c( unsigned long k ) const;
238 
239  private:
240 
242  AdvancedMattesMutualInformationMetric( const Self& ); // purposely not implemented
244  void operator=( const Self& ); // purposely not implemented
245 
246  double m_Param_c;
248 
249 
250 
251  }; // end class AdvancedMattesMutualInformationMetric
252 
253 
254 } // end namespace elastix
255 
256 
257 #ifndef ITK_MANUAL_INSTANTIATION
258 #include "elxAdvancedMattesMutualInformationMetric.hxx"
259 #endif
260 
261 #endif // end #ifndef __elxAdvancedMattesMutualInformationMetric_H__
Superclass::ElastixPointer ElastixPointer
Definition: elxMetricBase.h:85
Superclass::RegistrationType RegistrationType
Definition: elxMetricBase.h:88
Superclass::ConfigurationType ConfigurationType
Definition: elxMetricBase.h:86
itk::SmartPointer< Self > Pointer
Definition: elxTimer.h:72
double Compute_c(unsigned long k) const
Superclass1::MovingImageDerivativeScalesType MovingImageDerivativeScalesType
ElastixType::FixedImageType FixedImageType
Definition: elxMetricBase.h:92
A class to time the different parts of the registration.
Definition: elxTimer.h:66
A metric based on the itk::ParzenWindowMutualInformationImageToImageMetric.
Superclass1::MovingImageLimiterOutputType MovingImageLimiterOutputType
Superclass1::CoordinateRepresentationType CoordinateRepresentationType
elxClassNameMacro("AdvancedMattesMutualInformation")
itkStaticConstMacro(FixedImageDimension, unsigned int, FixedImageType::ImageDimension)
Superclass::ElastixType ElastixType
Definition: elxMetricBase.h:81
itk::SingleValuedCostFunction ITKBaseType
ElastixType::MovingImageType MovingImageType
Definition: elxMetricBase.h:95
Superclass::RegistrationPointer RegistrationPointer
Definition: elxMetricBase.h:89
itk::ParzenWindowMutualInformationImageToImageMetric< typename MetricBase< TElastix >::FixedImageType, typename MetricBase< TElastix >::MovingImageType > Superclass1
Computes the mutual information between two images to be registered using the method of Mattes et al...
Superclass::ConfigurationPointer ConfigurationPointer
Definition: elxMetricBase.h:87
This class is the elastix base class for all Metrics.
Definition: elxMetricBase.h:72


Generated on 05-01-2014 for elastix by doxygen 1.8.5 elastix logo