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
itkParzenWindowNormalizedMutualInformationImageToImageMetric.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 __itkParzenWindowNormalizedMutualInformationImageToImageMetric_H__
16
#define __itkParzenWindowNormalizedMutualInformationImageToImageMetric_H__
17
18
#include "
itkParzenWindowHistogramImageToImageMetric.h
"
19
20
namespace
itk
21
{
22
67
template
<
class
TFixedImage,
class
TMovingImage >
68
class
ParzenWindowNormalizedMutualInformationImageToImageMetric
:
69
public
ParzenWindowHistogramImageToImageMetric
< TFixedImage, TMovingImage >
70
{
71
public
:
72
74
typedef
ParzenWindowNormalizedMutualInformationImageToImageMetric
Self
;
75
typedef
ParzenWindowHistogramImageToImageMetric
<
76
TFixedImage, TMovingImage >
Superclass
;
77
typedef
SmartPointer<Self>
Pointer
;
78
typedef
SmartPointer<const Self>
ConstPointer
;
79
81
itkNewMacro(
Self
);
82
84
itkTypeMacro(
85
ParzenWindowNormalizedMutualInformationImageToImageMetric
,
86
ParzenWindowHistogramImageToImageMetric
);
87
89
typedef
typename
90
Superclass::CoordinateRepresentationType
CoordinateRepresentationType
;
91
typedef
typename
Superclass::MovingImageType
MovingImageType
;
92
typedef
typename
Superclass::MovingImagePixelType
MovingImagePixelType
;
93
typedef
typename
Superclass::MovingImageConstPointer
MovingImageConstPointer
;
94
typedef
typename
Superclass::FixedImageType
FixedImageType
;
95
typedef
typename
Superclass::FixedImageConstPointer
FixedImageConstPointer
;
96
typedef
typename
Superclass::FixedImageRegionType
FixedImageRegionType
;
97
typedef
typename
Superclass::TransformType
TransformType
;
98
typedef
typename
Superclass::TransformPointer
TransformPointer
;
99
typedef
typename
Superclass::InputPointType
InputPointType
;
100
typedef
typename
Superclass::OutputPointType
OutputPointType
;
101
typedef
typename
Superclass::TransformParametersType
TransformParametersType
;
102
typedef
typename
Superclass::TransformJacobianType
TransformJacobianType
;
103
typedef
typename
Superclass::InterpolatorType
InterpolatorType
;
104
typedef
typename
Superclass::InterpolatorPointer
InterpolatorPointer
;
105
typedef
typename
Superclass::RealType
RealType
;
106
typedef
typename
Superclass::GradientPixelType
GradientPixelType
;
107
typedef
typename
Superclass::GradientImageType
GradientImageType
;
108
typedef
typename
Superclass::GradientImagePointer
GradientImagePointer
;
109
typedef
typename
Superclass::GradientImageFilterType
GradientImageFilterType
;
110
typedef
typename
Superclass::GradientImageFilterPointer
GradientImageFilterPointer
;
111
typedef
typename
Superclass::FixedImageMaskType
FixedImageMaskType
;
112
typedef
typename
Superclass::FixedImageMaskPointer
FixedImageMaskPointer
;
113
typedef
typename
Superclass::MovingImageMaskType
MovingImageMaskType
;
114
typedef
typename
Superclass::MovingImageMaskPointer
MovingImageMaskPointer
;
115
typedef
typename
Superclass::MeasureType
MeasureType
;
116
typedef
typename
Superclass::DerivativeType
DerivativeType
;
117
typedef
typename
Superclass::ParametersType
ParametersType
;
118
typedef
typename
Superclass::FixedImagePixelType
FixedImagePixelType
;
119
typedef
typename
Superclass::MovingImageRegionType
MovingImageRegionType
;
120
typedef
typename
Superclass::ImageSamplerType
ImageSamplerType
;
121
typedef
typename
Superclass::ImageSamplerPointer
ImageSamplerPointer
;
122
typedef
typename
Superclass::ImageSampleContainerType
ImageSampleContainerType
;
123
typedef
typename
124
Superclass::ImageSampleContainerPointer
ImageSampleContainerPointer
;
125
typedef
typename
Superclass::FixedImageLimiterType
FixedImageLimiterType
;
126
typedef
typename
Superclass::MovingImageLimiterType
MovingImageLimiterType
;
127
typedef
typename
128
Superclass::FixedImageLimiterOutputType
FixedImageLimiterOutputType
;
129
typedef
typename
130
Superclass::MovingImageLimiterOutputType
MovingImageLimiterOutputType
;
131
typedef
typename
132
Superclass::MovingImageDerivativeScalesType
MovingImageDerivativeScalesType
;
133
135
itkStaticConstMacro
( FixedImageDimension,
unsigned
int
,
136
FixedImageType::ImageDimension );
137
139
itkStaticConstMacro
( MovingImageDimension,
unsigned
int
,
140
MovingImageType::ImageDimension );
141
143
MeasureType
GetValue
(
const
ParametersType
& parameters )
const
;
144
146
void
GetValueAndDerivative
(
const
ParametersType
& parameters,
147
MeasureType
& Value,
DerivativeType
& Derivative )
const
;
148
149
protected
:
150
152
ParzenWindowNormalizedMutualInformationImageToImageMetric
() {};
153
155
virtual
~ParzenWindowNormalizedMutualInformationImageToImageMetric
() {};
156
158
void
PrintSelf
( std::ostream& os, Indent indent )
const
;
159
163
typedef
typename
Superclass::FixedImageIndexType
FixedImageIndexType
;
164
typedef
typename
Superclass::FixedImageIndexValueType
FixedImageIndexValueType
;
165
typedef
typename
Superclass::MovingImageIndexType
MovingImageIndexType
;
166
typedef
typename
Superclass::FixedImagePointType
FixedImagePointType
;
167
typedef
typename
Superclass::MovingImagePointType
MovingImagePointType
;
168
typedef
typename
Superclass::MovingImageContinuousIndexType
MovingImageContinuousIndexType
;
169
typedef
typename
Superclass::BSplineInterpolatorType
BSplineInterpolatorType
;
170
typedef
typename
Superclass::CentralDifferenceGradientFilterType
CentralDifferenceGradientFilterType
;
171
typedef
typename
Superclass::MovingImageDerivativeType
MovingImageDerivativeType
;
172
typedef
typename
Superclass::PDFValueType
PDFValueType
;
173
typedef
typename
Superclass::MarginalPDFType
MarginalPDFType
;
174
typedef
typename
Superclass::JointPDFType
JointPDFType
;
175
typedef
typename
Superclass::JointPDFDerivativesType
JointPDFDerivativesType
;
176
typedef
typename
Superclass::IncrementalMarginalPDFType
IncrementalMarginalPDFType
;
177
typedef
typename
Superclass::JointPDFIndexType
JointPDFIndexType
;
178
typedef
typename
Superclass::JointPDFRegionType
JointPDFRegionType
;
179
typedef
typename
Superclass::JointPDFSizeType
JointPDFSizeType
;
180
typedef
typename
Superclass::JointPDFDerivativesIndexType
JointPDFDerivativesIndexType
;
181
typedef
typename
Superclass::JointPDFDerivativesRegionType
JointPDFDerivativesRegionType
;
182
typedef
typename
Superclass::JointPDFDerivativesSizeType
JointPDFDerivativesSizeType
;
183
typedef
typename
Superclass::ParzenValueContainerType
ParzenValueContainerType
;
184
typedef
typename
Superclass::KernelFunctionType
KernelFunctionType
;
185
typedef
typename
Superclass::NonZeroJacobianIndicesType
NonZeroJacobianIndicesType
;
186
189
virtual
void
ComputeLogMarginalPDF
(
MarginalPDFType
& pdf )
const
;
190
197
virtual
MeasureType
ComputeNormalizedMutualInformation
(
MeasureType
& jointEntropy )
const
;
198
199
private
:
200
202
ParzenWindowNormalizedMutualInformationImageToImageMetric
(
const
Self
& );
// purposely not implemented
204
void
operator=
(
const
Self
& );
// purposely not implemented
205
206
};
// end class ParzenWindowNormalizedMutualInformationImageToImageMetric
207
208
}
// end namespace itk
209
210
#ifndef ITK_MANUAL_INSTANTIATION
211
#include "itkParzenWindowNormalizedMutualInformationImageToImageMetric.hxx"
212
#endif
213
214
#endif // end #ifndef __itkParzenWindowNormalizedMutualInformationImageToImageMetric_H__
215
Generated on 21-03-2014 for elastix by
1.8.1.2