Home
|
Main Page
|
Modules
|
Namespace List
|
Class Hierarchy
|
Alphabetical List
|
Data Structures
|
File List
|
Namespace Members
|
Data Fields
|
Globals
|
Related Pages
src
Components
Metrics
BendingEnergyPenalty
itkTransformBendingEnergyPenaltyTerm.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 __itkTransformBendingEnergyPenaltyTerm_h
15
#define __itkTransformBendingEnergyPenaltyTerm_h
16
17
#include "
itkTransformPenaltyTerm.h
"
18
#include "
itkImageGridSampler.h
"
19
20
namespace
itk
21
{
22
45
template
<
class
TFixedImage,
class
TScalarType >
46
class
TransformBendingEnergyPenaltyTerm
47
:
public
TransformPenaltyTerm
< TFixedImage, TScalarType >
48
{
49
public
:
50
52
typedef
TransformBendingEnergyPenaltyTerm
Self
;
53
typedef
TransformPenaltyTerm
<
54
TFixedImage, TScalarType >
Superclass
;
55
typedef
SmartPointer<Self>
Pointer
;
56
typedef
SmartPointer<const Self>
ConstPointer
;
57
59
itkNewMacro(
Self
);
60
62
itkTypeMacro(
TransformBendingEnergyPenaltyTerm
,
TransformPenaltyTerm
);
63
65
typedef
typename
Superclass::CoordinateRepresentationType
CoordinateRepresentationType
;
66
typedef
typename
Superclass::MovingImageType
MovingImageType
;
67
typedef
typename
Superclass::MovingImagePixelType
MovingImagePixelType
;
68
typedef
typename
Superclass::MovingImagePointer
MovingImagePointer
;
69
typedef
typename
Superclass::MovingImageConstPointer
MovingImageConstPointer
;
70
typedef
typename
Superclass::FixedImageType
FixedImageType
;
71
typedef
typename
Superclass::FixedImagePointer
FixedImagePointer
;
72
typedef
typename
Superclass::FixedImageConstPointer
FixedImageConstPointer
;
73
typedef
typename
Superclass::FixedImageRegionType
FixedImageRegionType
;
74
typedef
typename
Superclass::TransformType
TransformType
;
75
typedef
typename
Superclass::TransformPointer
TransformPointer
;
76
typedef
typename
Superclass::InputPointType
InputPointType
;
77
typedef
typename
Superclass::OutputPointType
OutputPointType
;
78
typedef
typename
Superclass::TransformParametersType
TransformParametersType
;
79
typedef
typename
Superclass::TransformJacobianType
TransformJacobianType
;
80
typedef
typename
Superclass::InterpolatorType
InterpolatorType
;
81
typedef
typename
Superclass::InterpolatorPointer
InterpolatorPointer
;
82
typedef
typename
Superclass::RealType
RealType
;
83
typedef
typename
Superclass::GradientPixelType
GradientPixelType
;
84
typedef
typename
Superclass::GradientImageType
GradientImageType
;
85
typedef
typename
Superclass::GradientImagePointer
GradientImagePointer
;
86
typedef
typename
Superclass::GradientImageFilterType
GradientImageFilterType
;
87
typedef
typename
Superclass::GradientImageFilterPointer
GradientImageFilterPointer
;
88
typedef
typename
Superclass::FixedImageMaskType
FixedImageMaskType
;
89
typedef
typename
Superclass::FixedImageMaskPointer
FixedImageMaskPointer
;
90
typedef
typename
Superclass::MovingImageMaskType
MovingImageMaskType
;
91
typedef
typename
Superclass::MovingImageMaskPointer
MovingImageMaskPointer
;
92
typedef
typename
Superclass::MeasureType
MeasureType
;
93
typedef
typename
Superclass::DerivativeType
DerivativeType
;
94
typedef
typename
Superclass::DerivativeValueType
DerivativeValueType
;
95
typedef
typename
Superclass::ParametersType
ParametersType
;
96
typedef
typename
Superclass::FixedImagePixelType
FixedImagePixelType
;
97
typedef
typename
Superclass::ImageSampleContainerType
ImageSampleContainerType
;
98
typedef
typename
Superclass::ImageSampleContainerPointer
ImageSampleContainerPointer
;
99
typedef
typename
Superclass::ScalarType
ScalarType
;
100
102
typedef
typename
Superclass::SpatialJacobianType
SpatialJacobianType
;
103
typedef
typename
Superclass
104
::JacobianOfSpatialJacobianType
JacobianOfSpatialJacobianType
;
105
typedef
typename
Superclass::SpatialHessianType
SpatialHessianType
;
106
typedef
typename
Superclass
107
::JacobianOfSpatialHessianType
JacobianOfSpatialHessianType
;
108
typedef
typename
Superclass::InternalMatrixType
InternalMatrixType
;
109
typedef
typename
Superclass::HessianValueType
HessianValueType
;
110
typedef
typename
Superclass::HessianType
HessianType
;
111
113
itkStaticConstMacro
( FixedImageDimension,
unsigned
int
, FixedImageType::ImageDimension );
114
116
virtual
MeasureType
GetValue
(
const
ParametersType
& parameters )
const
;
117
119
virtual
void
GetDerivative
(
const
ParametersType
& parameters,
120
DerivativeType
& derivative )
const
;
121
123
virtual
void
GetValueAndDerivative
(
124
const
ParametersType
& parameters,
125
MeasureType
& value,
126
DerivativeType
& derivative )
const
;
127
129
virtual
void
GetSelfHessian
(
const
TransformParametersType
& parameters,
HessianType
& H )
const
;
130
132
itkSetMacro( NumberOfSamplesForSelfHessian,
unsigned
int
);
133
itkGetConstMacro( NumberOfSamplesForSelfHessian,
unsigned
int
);
134
135
protected
:
136
138
typedef
typename
Superclass::FixedImageIndexType
FixedImageIndexType
;
139
typedef
typename
Superclass::FixedImageIndexValueType
FixedImageIndexValueType
;
140
typedef
typename
Superclass::MovingImageIndexType
MovingImageIndexType
;
141
typedef
typename
Superclass::FixedImagePointType
FixedImagePointType
;
142
typedef
typename
Superclass::MovingImagePointType
MovingImagePointType
;
143
typedef
typename
Superclass::MovingImageContinuousIndexType
MovingImageContinuousIndexType
;
144
typedef
typename
Superclass::NonZeroJacobianIndicesType
NonZeroJacobianIndicesType
;
145
147
typedef
typename
Superclass::BSplineTransformType
BSplineTransformType
;
148
typedef
typename
Superclass::CombinationTransformType
CombinationTransformType
;
149
151
typedef
ImageGridSampler<FixedImageType>
SelfHessianSamplerType
;
152
154
TransformBendingEnergyPenaltyTerm
();
155
157
virtual
~TransformBendingEnergyPenaltyTerm
() {};
158
159
private
:
160
162
TransformBendingEnergyPenaltyTerm
(
const
Self
& );
// purposely not implemented
164
void
operator=
(
const
Self
& );
// purposely not implemented
165
166
unsigned
int
m_NumberOfSamplesForSelfHessian
;
167
168
};
// end class TransformBendingEnergyPenaltyTerm
169
170
171
}
// end namespace itk
172
173
#ifndef ITK_MANUAL_INSTANTIATION
174
#include "itkTransformBendingEnergyPenaltyTerm.txx"
175
#endif
176
177
#endif // #ifndef __itkTransformBendingEnergyPenaltyTerm_h
178
Generated on 27-06-2013 for elastix by
1.8.3.1