Home
|
Main Page
|
Modules
|
Namespace List
|
Class Hierarchy
|
Alphabetical List
|
Data Structures
|
File List
|
Namespace Members
|
Data Fields
|
Globals
|
Related Pages
src
Components
Metrics
AdvancedNormalizedCorrelation
itkAdvancedNormalizedCorrelationImageToImageMetric.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 __itkAdvancedNormalizedCorrelationImageToImageMetric_h
16
#define __itkAdvancedNormalizedCorrelationImageToImageMetric_h
17
18
#include "
itkAdvancedImageToImageMetric.h
"
19
20
21
namespace
itk
22
{
82
template
<
class
TFixedImage,
class
TMovingImage >
83
class
AdvancedNormalizedCorrelationImageToImageMetric
:
84
public
AdvancedImageToImageMetric
< TFixedImage, TMovingImage >
85
{
86
public
:
87
89
typedef
AdvancedNormalizedCorrelationImageToImageMetric
Self
;
90
typedef
AdvancedImageToImageMetric
<
91
TFixedImage, TMovingImage >
Superclass
;
92
typedef
SmartPointer<Self>
Pointer
;
93
typedef
SmartPointer<const Self>
ConstPointer
;
94
96
itkNewMacro(
Self
);
97
99
itkTypeMacro(
AdvancedNormalizedCorrelationImageToImageMetric
,
AdvancedImageToImageMetric
);
100
102
typedef
typename
103
Superclass::CoordinateRepresentationType
CoordinateRepresentationType
;
104
typedef
typename
Superclass::MovingImageType
MovingImageType
;
105
typedef
typename
Superclass::MovingImagePixelType
MovingImagePixelType
;
106
typedef
typename
Superclass::MovingImageConstPointer
MovingImageConstPointer
;
107
typedef
typename
Superclass::FixedImageType
FixedImageType
;
108
typedef
typename
Superclass::FixedImageConstPointer
FixedImageConstPointer
;
109
typedef
typename
Superclass::FixedImageRegionType
FixedImageRegionType
;
110
typedef
typename
Superclass::TransformType
TransformType
;
111
typedef
typename
Superclass::TransformPointer
TransformPointer
;
112
typedef
typename
Superclass::InputPointType
InputPointType
;
113
typedef
typename
Superclass::OutputPointType
OutputPointType
;
114
typedef
typename
Superclass::TransformParametersType
TransformParametersType
;
115
typedef
typename
Superclass::TransformJacobianType
TransformJacobianType
;
116
typedef
typename
Superclass::InterpolatorType
InterpolatorType
;
117
typedef
typename
Superclass::InterpolatorPointer
InterpolatorPointer
;
118
typedef
typename
Superclass::RealType
RealType
;
119
typedef
typename
Superclass::GradientPixelType
GradientPixelType
;
120
typedef
typename
Superclass::GradientImageType
GradientImageType
;
121
typedef
typename
Superclass::GradientImagePointer
GradientImagePointer
;
122
typedef
typename
Superclass::GradientImageFilterType
GradientImageFilterType
;
123
typedef
typename
Superclass::GradientImageFilterPointer
GradientImageFilterPointer
;
124
typedef
typename
Superclass::FixedImageMaskType
FixedImageMaskType
;
125
typedef
typename
Superclass::FixedImageMaskPointer
FixedImageMaskPointer
;
126
typedef
typename
Superclass::MovingImageMaskType
MovingImageMaskType
;
127
typedef
typename
Superclass::MovingImageMaskPointer
MovingImageMaskPointer
;
128
typedef
typename
Superclass::MeasureType
MeasureType
;
129
typedef
typename
Superclass::DerivativeType
DerivativeType
;
130
typedef
typename
Superclass::ParametersType
ParametersType
;
131
typedef
typename
Superclass::FixedImagePixelType
FixedImagePixelType
;
132
typedef
typename
Superclass::MovingImageRegionType
MovingImageRegionType
;
133
typedef
typename
Superclass::ImageSamplerType
ImageSamplerType
;
134
typedef
typename
Superclass::ImageSamplerPointer
ImageSamplerPointer
;
135
typedef
typename
Superclass::ImageSampleContainerType
ImageSampleContainerType
;
136
typedef
typename
137
Superclass::ImageSampleContainerPointer
ImageSampleContainerPointer
;
138
typedef
typename
Superclass::FixedImageLimiterType
FixedImageLimiterType
;
139
typedef
typename
Superclass::MovingImageLimiterType
MovingImageLimiterType
;
140
typedef
typename
141
Superclass::FixedImageLimiterOutputType
FixedImageLimiterOutputType
;
142
typedef
typename
143
Superclass::MovingImageLimiterOutputType
MovingImageLimiterOutputType
;
144
typedef
typename
145
Superclass::MovingImageDerivativeScalesType
MovingImageDerivativeScalesType
;
146
148
itkStaticConstMacro
( FixedImageDimension,
unsigned
int
,
149
FixedImageType::ImageDimension );
150
152
itkStaticConstMacro
( MovingImageDimension,
unsigned
int
,
153
MovingImageType::ImageDimension );
154
156
MeasureType
GetValue
(
const
TransformParametersType
& parameters )
const
;
157
159
void
GetDerivative
(
const
TransformParametersType
& parameters,
160
DerivativeType
& Derivative )
const
;
161
163
void
GetValueAndDerivative
(
const
TransformParametersType
& parameters,
164
MeasureType
& Value,
DerivativeType
& Derivative )
const
;
165
170
itkSetMacro( SubtractMean,
bool
);
171
itkGetConstReferenceMacro( SubtractMean,
bool
);
172
itkBooleanMacro( SubtractMean );
173
174
protected
:
175
AdvancedNormalizedCorrelationImageToImageMetric
();
176
virtual
~AdvancedNormalizedCorrelationImageToImageMetric
() {};
177
void
PrintSelf
( std::ostream& os, Indent indent )
const
;
178
182
typedef
typename
Superclass::FixedImageIndexType
FixedImageIndexType
;
183
typedef
typename
Superclass::FixedImageIndexValueType
FixedImageIndexValueType
;
184
typedef
typename
Superclass::MovingImageIndexType
MovingImageIndexType
;
185
typedef
typename
Superclass::FixedImagePointType
FixedImagePointType
;
186
typedef
typename
Superclass::MovingImagePointType
MovingImagePointType
;
187
typedef
typename
Superclass::MovingImageContinuousIndexType
MovingImageContinuousIndexType
;
188
typedef
typename
Superclass::BSplineInterpolatorType
BSplineInterpolatorType
;
189
typedef
typename
Superclass::CentralDifferenceGradientFilterType
CentralDifferenceGradientFilterType
;
190
typedef
typename
Superclass::MovingImageDerivativeType
MovingImageDerivativeType
;
191
typedef
typename
Superclass::NonZeroJacobianIndicesType
NonZeroJacobianIndicesType
;
192
196
void
EvaluateTransformJacobianInnerProduct
(
197
const
TransformJacobianType
& jacobian,
198
const
MovingImageDerivativeType
& movingImageDerivative,
199
DerivativeType
& imageJacobian)
const
;
200
203
void
UpdateDerivativeTerms
(
204
const
RealType
fixedImageValue,
205
const
RealType
movingImageValue,
206
const
DerivativeType
& imageJacobian,
207
const
NonZeroJacobianIndicesType
& nzji,
208
DerivativeType
& derivativeF,
209
DerivativeType
& derivativeM,
210
DerivativeType
& differential )
const
;
211
212
private
:
213
AdvancedNormalizedCorrelationImageToImageMetric
(
const
Self
&);
//purposely not implemented
214
void
operator=
(
const
Self
&);
//purposely not implemented
215
216
bool
m_SubtractMean
;
217
218
};
// end class AdvancedNormalizedCorrelationImageToImageMetric
219
220
}
// end namespace itk
221
222
#ifndef ITK_MANUAL_INSTANTIATION
223
#include "itkAdvancedNormalizedCorrelationImageToImageMetric.txx"
224
#endif
225
226
#endif // end #ifndef __itkAdvancedNormalizedCorrelationImageToImageMetric_h
227
Generated on 27-06-2013 for elastix by
1.8.3.1