Home
|
Main Page
|
Modules
|
Namespace List
|
Class Hierarchy
|
Alphabetical List
|
Data Structures
|
File List
|
Namespace Members
|
Data Fields
|
Globals
|
Related Pages
src
Common
CostFunctions
itkTransformPenaltyTerm.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 __itkTransformPenaltyTerm_h
16
#define __itkTransformPenaltyTerm_h
17
18
#include "
itkAdvancedImageToImageMetric.h
"
19
20
// Needed for checking for B-spline for faster implementation
21
#include "
itkAdvancedBSplineDeformableTransform.h
"
22
#include "
itkAdvancedCombinationTransform.h
"
23
24
25
namespace
itk
26
{
42
template
<
class
TFixedImage,
class
TScalarType =
double
>
43
class
TransformPenaltyTerm
44
:
public
AdvancedImageToImageMetric
< TFixedImage, TFixedImage >
45
{
46
public
:
47
49
typedef
TransformPenaltyTerm
Self
;
50
typedef
AdvancedImageToImageMetric
<
51
TFixedImage, TFixedImage >
Superclass
;
52
typedef
SmartPointer<Self>
Pointer
;
53
typedef
SmartPointer<const Self>
ConstPointer
;
54
56
itkTypeMacro(
TransformPenaltyTerm
,
AdvancedImageToImageMetric
);
57
59
typedef
typename
Superclass::CoordinateRepresentationType
CoordinateRepresentationType
;
60
typedef
typename
Superclass::MovingImageType
MovingImageType
;
61
typedef
typename
Superclass::MovingImagePixelType
MovingImagePixelType
;
62
typedef
typename
Superclass::MovingImagePointer
MovingImagePointer
;
63
typedef
typename
Superclass::MovingImageConstPointer
MovingImageConstPointer
;
64
typedef
typename
Superclass::FixedImageType
FixedImageType
;
65
typedef
typename
Superclass::FixedImagePointer
FixedImagePointer
;
66
typedef
typename
Superclass::FixedImageConstPointer
FixedImageConstPointer
;
67
typedef
typename
Superclass::FixedImageRegionType
FixedImageRegionType
;
68
// these not: use advanced transform below
69
//typedef typename Superclass::TransformType TransformType;
70
//typedef typename Superclass::TransformPointer TransformPointer;
71
typedef
typename
Superclass::InputPointType
InputPointType
;
72
typedef
typename
Superclass::OutputPointType
OutputPointType
;
73
typedef
typename
Superclass::TransformParametersType
TransformParametersType
;
74
typedef
typename
Superclass::TransformJacobianType
TransformJacobianType
;
75
typedef
typename
Superclass::InterpolatorType
InterpolatorType
;
76
typedef
typename
Superclass::InterpolatorPointer
InterpolatorPointer
;
77
typedef
typename
Superclass::RealType
RealType
;
78
typedef
typename
Superclass::GradientPixelType
GradientPixelType
;
79
typedef
typename
Superclass::GradientImageType
GradientImageType
;
80
typedef
typename
Superclass::GradientImagePointer
GradientImagePointer
;
81
typedef
typename
Superclass::GradientImageFilterType
GradientImageFilterType
;
82
typedef
typename
Superclass::GradientImageFilterPointer
GradientImageFilterPointer
;
83
typedef
typename
Superclass::FixedImageMaskType
FixedImageMaskType
;
84
typedef
typename
Superclass::FixedImageMaskPointer
FixedImageMaskPointer
;
85
typedef
typename
Superclass::MovingImageMaskType
MovingImageMaskType
;
86
typedef
typename
Superclass::MovingImageMaskPointer
MovingImageMaskPointer
;
87
typedef
typename
Superclass::MeasureType
MeasureType
;
88
typedef
typename
Superclass::DerivativeType
DerivativeType
;
89
typedef
typename
Superclass::DerivativeValueType
DerivativeValueType
;
90
typedef
typename
Superclass::ParametersType
ParametersType
;
91
typedef
typename
Superclass::FixedImagePixelType
FixedImagePixelType
;
92
typedef
typename
Superclass::ImageSampleContainerType
ImageSampleContainerType
;
93
typedef
typename
Superclass::ImageSampleContainerPointer
ImageSampleContainerPointer
;
94
96
typedef
TScalarType
ScalarType
;
// \todo: not really meaningful name.
97
99
typedef
typename
Superclass
100
::AdvancedTransformType
TransformType
;
101
typedef
typename
TransformType
102
::SpatialJacobianType
SpatialJacobianType
;
103
typedef
typename
TransformType
104
::JacobianOfSpatialJacobianType
JacobianOfSpatialJacobianType
;
105
typedef
typename
TransformType
106
::SpatialHessianType
SpatialHessianType
;
107
typedef
typename
TransformType
108
::JacobianOfSpatialHessianType
JacobianOfSpatialHessianType
;
109
typedef
typename
TransformType
110
::InternalMatrixType
InternalMatrixType
;
111
113
itkStaticConstMacro
( FixedImageDimension,
unsigned
int
, FixedImageType::ImageDimension );
114
115
protected
:
116
118
typedef
typename
Superclass::FixedImageIndexType
FixedImageIndexType
;
119
typedef
typename
Superclass::FixedImageIndexValueType
FixedImageIndexValueType
;
120
typedef
typename
Superclass::MovingImageIndexType
MovingImageIndexType
;
121
typedef
typename
Superclass::FixedImagePointType
FixedImagePointType
;
122
typedef
typename
Superclass::MovingImagePointType
MovingImagePointType
;
123
typedef
typename
Superclass::MovingImageContinuousIndexType
MovingImageContinuousIndexType
;
124
typedef
typename
Superclass::NonZeroJacobianIndicesType
NonZeroJacobianIndicesType
;
125
127
TransformPenaltyTerm
(){};
128
130
virtual
~TransformPenaltyTerm
() {};
131
133
//void PrintSelf( std::ostream& os, Indent indent ) const;
134
136
typedef
AdvancedBSplineDeformableTransform
<
137
ScalarType
, FixedImageDimension, 3 >
BSplineTransformType
;
138
typedef
typename
BSplineTransformType::Pointer
BSplineTransformPointer
;
139
typedef
AdvancedCombinationTransform
<
140
ScalarType
, FixedImageDimension >
CombinationTransformType
;
141
143
virtual
bool
CheckForBSplineTransform
(
BSplineTransformPointer
& bspline )
const
;
144
145
private
:
146
148
TransformPenaltyTerm
(
const
Self
& );
// purposely not implemented
150
void
operator=
(
const
Self
& );
// purposely not implemented
151
152
};
// end class TransformPenaltyTerm
153
154
155
}
// end namespace itk
156
157
#ifndef ITK_MANUAL_INSTANTIATION
158
#include "itkTransformPenaltyTerm.txx"
159
#endif
160
161
#endif // #ifndef __itkTransformPenaltyTerm_h
162
Generated on 27-06-2013 for elastix by
1.8.3.1