go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxMutualInformationHistogramMetric.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 __elxMutualInformationHistogramMetric_H__
16 #define __elxMutualInformationHistogramMetric_H__
17 
18 #include "elxIncludes.h"
19 #include "itkMutualInformationHistogramImageToImageMetric.h"
20 
21 #include "elxTimer.h"
22 
23 namespace elastix
24 {
25 using namespace itk;
26 
45  template <class TElastix >
47  public
49  ITK_TYPENAME MetricBase<TElastix>::FixedImageType,
50  ITK_TYPENAME MetricBase<TElastix>::MovingImageType >,
51  public MetricBase<TElastix>
52  {
53  public:
54 
61  typedef SmartPointer<Self> Pointer;
62  typedef SmartPointer<const Self> ConstPointer;
63 
65  itkNewMacro( Self );
66 
70 
75  elxClassNameMacro( "MutualInformationHistogram" );
76 
78  typedef typename Superclass1::TransformType TransformType;
79  typedef typename Superclass1::TransformPointer TransformPointer;
80  typedef typename Superclass1::TransformJacobianType TransformJacobianType;
81  typedef typename Superclass1::InterpolatorType InterpolatorType;
82  typedef typename Superclass1::MeasureType MeasureType;
83  typedef typename Superclass1::DerivativeType DerivativeType;
84  typedef typename Superclass1::ParametersType ParametersType;
85  typedef typename Superclass1::FixedImageType FixedImageType;
86  typedef typename Superclass1::MovingImageType MovingImageType;
87  typedef typename Superclass1::FixedImageConstPointer FixedImageConstPointer;
88  typedef typename Superclass1::MovingImageConstPointer MovingImageCosntPointer;
89  typedef typename Superclass1::ScalesType ScalesType;
90 
92  itkStaticConstMacro( MovingImageDimension, unsigned int,
93  MovingImageType::ImageDimension );
94 
103 
107 
111  virtual void BeforeRegistration(void);
112 
116  virtual void BeforeEachResolution(void);
117 
121  virtual void Initialize(void) throw (ExceptionObject);
122 
123  protected:
124 
128  virtual ~MutualInformationHistogramMetric() {}
129 
130  private:
131 
133  MutualInformationHistogramMetric( const Self& ); // purposely not implemented
135  void operator=( const Self& ); // purposely not implemented
136 
137  }; // end class MutualInformationHistogramMetric
138 
139 
140 } // end namespace elastix
141 
142 
143 #ifndef ITK_MANUAL_INSTANTIATION
144 #include "elxMutualInformationHistogramMetric.hxx"
145 #endif
146 
147 #endif // end #ifndef __elxMutualInformationHistogramMetric_H__
Superclass::ElastixPointer ElastixPointer
Definition: elxMetricBase.h:86
Superclass::RegistrationType RegistrationType
Definition: elxMetricBase.h:89
Superclass::ConfigurationType ConfigurationType
Definition: elxMetricBase.h:87
#define elxClassNameMacro(_name)
Definition: elxMacro.h:254
Superclass1::FixedImageConstPointer FixedImageConstPointer
SmartPointer< Self > Pointer
Definition: elxTimer.h:73
A metric based on the itk::MutualInformationHistogramImageToImageMetric.
ElastixType::FixedImageType FixedImageType
Definition: elxMetricBase.h:93
A class to time the different parts of the registration.
Definition: elxTimer.h:67
Superclass1::MovingImageConstPointer MovingImageCosntPointer
SingleValuedCostFunction ITKBaseType
MutualInformationHistogramImageToImageMetric< typename MetricBase< TElastix >::FixedImageType, typename MetricBase< TElastix >::MovingImageType > Superclass1
Superclass::ElastixType ElastixType
Definition: elxMetricBase.h:82
ElastixType::MovingImageType MovingImageType
Definition: elxMetricBase.h:96
Superclass::RegistrationPointer RegistrationPointer
Definition: elxMetricBase.h:90
Superclass::ConfigurationPointer ConfigurationPointer
Definition: elxMetricBase.h:88
This class is the elastix base class for all Metrics.
Definition: elxMetricBase.h:73


Generated on 06-12-2013 for elastix by doxygen 1.8.5 elastix logo