Home
|
Main Page
|
Modules
|
Namespace List
|
Class Hierarchy
|
Alphabetical List
|
Data Structures
|
File List
|
Namespace Members
|
Data Fields
|
Globals
|
Related Pages
src
Components
Metrics
NormalizedMutualInformation
elxNormalizedMutualInformationMetric.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 __elxNormalizedMutualInformationMetric_H__
16
#define __elxNormalizedMutualInformationMetric_H__
17
18
#include "
elxIncludes.h
"
19
#include "
itkParzenWindowNormalizedMutualInformationImageToImageMetric.h
"
20
21
#include "
elxTimer.h
"
22
23
namespace
elastix
24
{
25
using namespace
itk;
26
72
template
<
class
TElastix >
73
class
NormalizedMutualInformationMetric
:
74
public
75
ParzenWindowNormalizedMutualInformationImageToImageMetric
<
76
ITK_TYPENAME MetricBase<TElastix>::FixedImageType,
77
ITK_TYPENAME MetricBase<TElastix>::MovingImageType >,
78
public
MetricBase
<TElastix>
79
{
80
public
:
81
83
typedef
NormalizedMutualInformationMetric
Self
;
84
typedef
ParzenWindowNormalizedMutualInformationImageToImageMetric
<
85
typename
MetricBase<TElastix>::FixedImageType
,
86
typename
MetricBase<TElastix>::MovingImageType
>
Superclass1
;
87
typedef
MetricBase<TElastix>
Superclass2
;
88
typedef
SmartPointer<Self>
Pointer
;
89
typedef
SmartPointer<const Self>
ConstPointer
;
90
92
itkNewMacro(
Self
);
93
95
itkTypeMacro(
NormalizedMutualInformationMetric
,
96
ParzenWindowNormalizedMutualInformationImageToImageMetric
);
97
102
elxClassNameMacro
(
"NormalizedMutualInformation"
);
103
105
typedef
typename
106
Superclass1::CoordinateRepresentationType
CoordinateRepresentationType
;
107
typedef
typename
Superclass1::MovingImageType
MovingImageType
;
108
typedef
typename
Superclass1::MovingImagePixelType
MovingImagePixelType
;
109
typedef
typename
Superclass1::MovingImageConstPointer
MovingImageConstPointer
;
110
typedef
typename
Superclass1::FixedImageType
FixedImageType
;
111
typedef
typename
Superclass1::FixedImageConstPointer
FixedImageConstPointer
;
112
typedef
typename
Superclass1::FixedImageRegionType
FixedImageRegionType
;
113
typedef
typename
Superclass1::TransformType
TransformType
;
114
typedef
typename
Superclass1::TransformPointer
TransformPointer
;
115
typedef
typename
Superclass1::InputPointType
InputPointType
;
116
typedef
typename
Superclass1::OutputPointType
OutputPointType
;
117
typedef
typename
Superclass1::TransformParametersType
TransformParametersType
;
118
typedef
typename
Superclass1::TransformJacobianType
TransformJacobianType
;
119
typedef
typename
Superclass1::InterpolatorType
InterpolatorType
;
120
typedef
typename
Superclass1::InterpolatorPointer
InterpolatorPointer
;
121
typedef
typename
Superclass1::RealType
RealType
;
122
typedef
typename
Superclass1::GradientPixelType
GradientPixelType
;
123
typedef
typename
Superclass1::GradientImageType
GradientImageType
;
124
typedef
typename
Superclass1::GradientImagePointer
GradientImagePointer
;
125
typedef
typename
Superclass1::GradientImageFilterType
GradientImageFilterType
;
126
typedef
typename
Superclass1::GradientImageFilterPointer
GradientImageFilterPointer
;
127
typedef
typename
Superclass1::FixedImageMaskType
FixedImageMaskType
;
128
typedef
typename
Superclass1::FixedImageMaskPointer
FixedImageMaskPointer
;
129
typedef
typename
Superclass1::MovingImageMaskType
MovingImageMaskType
;
130
typedef
typename
Superclass1::MovingImageMaskPointer
MovingImageMaskPointer
;
131
typedef
typename
Superclass1::MeasureType
MeasureType
;
132
typedef
typename
Superclass1::DerivativeType
DerivativeType
;
133
typedef
typename
Superclass1::ParametersType
ParametersType
;
134
typedef
typename
Superclass1::FixedImagePixelType
FixedImagePixelType
;
135
typedef
typename
Superclass1::MovingImageRegionType
MovingImageRegionType
;
136
typedef
typename
Superclass1::ImageSamplerType
ImageSamplerType
;
137
typedef
typename
Superclass1::ImageSamplerPointer
ImageSamplerPointer
;
138
typedef
typename
Superclass1::ImageSampleContainerType
ImageSampleContainerType
;
139
typedef
typename
140
Superclass1::ImageSampleContainerPointer
ImageSampleContainerPointer
;
141
typedef
typename
Superclass1::FixedImageLimiterType
FixedImageLimiterType
;
142
typedef
typename
Superclass1::MovingImageLimiterType
MovingImageLimiterType
;
143
typedef
typename
144
Superclass1::FixedImageLimiterOutputType
FixedImageLimiterOutputType
;
145
typedef
typename
146
Superclass1::MovingImageLimiterOutputType
MovingImageLimiterOutputType
;
147
typedef
typename
148
Superclass1::MovingImageDerivativeScalesType
MovingImageDerivativeScalesType
;
149
151
itkStaticConstMacro( FixedImageDimension,
unsigned
int
,
152
FixedImageType::ImageDimension );
153
155
itkStaticConstMacro( MovingImageDimension,
unsigned
int
,
156
MovingImageType::ImageDimension );
157
159
typedef
typename
Superclass2::ElastixType
ElastixType
;
160
typedef
typename
Superclass2::ElastixPointer
ElastixPointer
;
161
typedef
typename
Superclass2::ConfigurationType
ConfigurationType
;
162
typedef
typename
Superclass2::ConfigurationPointer
ConfigurationPointer
;
163
typedef
typename
Superclass2::RegistrationType
RegistrationType
;
164
typedef
typename
Superclass2::RegistrationPointer
RegistrationPointer
;
165
typedef
typename
Superclass2::ITKBaseType
ITKBaseType
;
166
168
typedef
tmr::Timer
TimerType
;
170
typedef
TimerType::Pointer
TimerPointer
;
171
177
virtual
void
BeforeEachResolution(
void
);
178
181
virtual
void
Initialize(
void
) throw (ExceptionObject);
182
183
protected:
184
186
NormalizedMutualInformationMetric
()
187
{
188
this->SetUseDerivative(
true
);
189
};
190
192
virtual
~NormalizedMutualInformationMetric
() {}
193
194
private
:
195
197
NormalizedMutualInformationMetric
(
const
Self& );
// purposely not implemented
199
void
operator=(
const
Self& );
// purposely not implemented
200
201
};
// end class NormalizedMutualInformationMetric
202
203
204
}
// end namespace elastix
205
206
207
#ifndef ITK_MANUAL_INSTANTIATION
208
#include "elxNormalizedMutualInformationMetric.hxx"
209
#endif
210
211
#endif // end #ifndef __elxNormalizedMutualInformationMetric_H__
Generated on 27-06-2013 for elastix by
1.8.3.1