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 #ifndef __elxAdvancedMattesMutualInformationMetric_H__
15 #define __elxAdvancedMattesMutualInformationMetric_H__
16 
17 #include "elxIncludes.h" // include first to avoid MSVS warning
19 
20 #include "elxTimer.h"
21 
22 namespace elastix
23 {
24 
97 template< class TElastix >
99  public
101  typename MetricBase< TElastix >::FixedImageType,
102  typename MetricBase< TElastix >::MovingImageType >,
103  public MetricBase< TElastix >
104 {
105 public:
106 
113  typedef itk::SmartPointer< Self > Pointer;
114  typedef itk::SmartPointer< const Self > ConstPointer;
115 
117  itkNewMacro( Self );
118 
122 
127  elxClassNameMacro( "AdvancedMattesMutualInformation" );
128 
130  typedef typename
146  typedef typename Superclass1::RealType RealType;
164  typedef typename
168  typedef typename
170  typedef typename
172  typedef typename
174 
176  itkStaticConstMacro( FixedImageDimension, unsigned int,
177  FixedImageType::ImageDimension );
178 
180  itkStaticConstMacro( MovingImageDimension, unsigned int,
181  MovingImageType::ImageDimension );
182 
191 
196 
202  virtual void BeforeEachResolution( void );
203 
207  virtual void AfterEachIteration( void );
208 
211  virtual void Initialize( void ) throw ( itk::ExceptionObject );
212 
214  itkSetMacro( Param_c, double );
215  itkGetConstMacro( Param_c, double );
216 
218  itkSetMacro( Param_gamma, double );
219  itkGetConstMacro( Param_gamma, double );
220 
222  itkSetMacro( CurrentIteration, unsigned int );
223  itkGetConstMacro( CurrentIteration, unsigned int );
224 
225 protected:
226 
229 
231  virtual ~AdvancedMattesMutualInformationMetric() {}
232 
233  unsigned long m_CurrentIteration;
234 
236  double Compute_c( unsigned long k ) const;
237 
238 private:
239 
241  AdvancedMattesMutualInformationMetric( const Self & ); // purposely not implemented
243  void operator=( const Self & ); // purposely not implemented
244 
245  double m_Param_c;
247 
248 };
249 
250 } // end namespace elastix
251 
252 #ifndef ITK_MANUAL_INSTANTIATION
253 #include "elxAdvancedMattesMutualInformationMetric.hxx"
254 #endif
255 
256 #endif // end #ifndef __elxAdvancedMattesMutualInformationMetric_H__
Superclass::ElastixPointer ElastixPointer
Definition: elxMetricBase.h:84
Superclass::RegistrationType RegistrationType
Definition: elxMetricBase.h:87
Superclass::ConfigurationType ConfigurationType
Definition: elxMetricBase.h:85
double Compute_c(unsigned long k) const
Superclass1::MovingImageDerivativeScalesType MovingImageDerivativeScalesType
ElastixType::FixedImageType FixedImageType
Definition: elxMetricBase.h:91
itk::SmartPointer< Self > Pointer
Definition: elxTimer.h:73
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:80
itk::SingleValuedCostFunction ITKBaseType
Definition: elxMetricBase.h:99
ElastixType::MovingImageType MovingImageType
Definition: elxMetricBase.h:94
Superclass::RegistrationPointer RegistrationPointer
Definition: elxMetricBase.h:88
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:86
This class is the elastix base class for all Metrics.
Definition: elxMetricBase.h:71


Generated on 27-04-2014 for elastix by doxygen 1.8.6 elastix logo