go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkCyclicBSplineDeformableTransform.h
Go to the documentation of this file.
1/*=========================================================================
2 *
3 * Copyright UMC Utrecht and contributors
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0.txt
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 *=========================================================================*/
18#ifndef __itkCyclicBSplineDeformableTransform_h
19#define __itkCyclicBSplineDeformableTransform_h
20
22#include "itkImage.h"
23#include "itkImageRegion.h"
29
30namespace itk
31{
32
40template<
41class TScalarType = double, // Data type for scalars
42unsigned int NDimensions = 3, // Number of dimensions
43unsigned int VSplineOrder = 3 >
44// Spline order
46 public AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder >
47{
48public:
49
53 TScalarType, NDimensions, VSplineOrder > Superclass;
55 typedef SmartPointer< const Self > ConstPointer;
56
58 itkNewMacro( Self );
59
62
64 itkStaticConstMacro( SpaceDimension, unsigned int, NDimensions );
65
67 itkStaticConstMacro( SplineOrder, unsigned int, VSplineOrder );
68
71 typedef typename Superclass
73 typedef typename Superclass
76 typedef typename Superclass
81
83 typedef typename ParametersType::ValueType PixelType;
84 typedef Image< PixelType,
85 itkGetStaticConstMacro( SpaceDimension ) > ImageType;
86 typedef typename ImageType::Pointer ImagePointer;
87
89 typedef typename RegionType::IndexType IndexType;
90 typedef typename RegionType::SizeType SizeType;
91 typedef typename ImageType::SpacingType SpacingType;
92 typedef typename ImageType::DirectionType DirectionType;
93 typedef typename ImageType::PointType OriginType;
94 typedef typename RegionType::IndexType GridOffsetType;
98 typedef typename Superclass::
99 ParameterIndexArrayType ParameterIndexArrayType;
100 typedef typename Superclass::
101 ContinuousIndexType ContinuousIndexType;
103 typedef typename Superclass::
104 JacobianImageType JacobianImageType;
105 typedef typename Superclass::
106 JacobianPixelType JacobianPixelType;
107 typedef typename Superclass::
108 WeightsFunctionType WeightsFunctionType;
110 itkGetStaticConstMacro( SpaceDimension ) - 1,
111 itkGetStaticConstMacro( SplineOrder ) > RedWeightsFunctionType;
112 typedef typename RedWeightsFunctionType::
113 ContinuousIndexType RedContinuousIndexType;
114
116 void SetGridRegion( const RegionType & region ) override;
117
126 const InputPointType & inputPoint,
127 OutputPointType & outputPoint,
128 WeightsType & weights,
129 ParameterIndexArrayType & indices,
130 bool & inside ) const override;
131
133 virtual void GetJacobian(
134 const InputPointType & ipp,
135 WeightsType & weights,
136 ParameterIndexArrayType & indices ) const;
137
140 const InputPointType & ipp,
141 SpatialJacobianType & sj ) const override;
142
143protected:
144
147
149 NonZeroJacobianIndicesType & nonZeroJacobianIndices,
150 const RegionType & supportRegion ) const override;
151
153 bool InsideValidRegion( const ContinuousIndexType & index ) const override;
154
156 virtual void SplitRegion(
157 const RegionType & imageRegion,
158 const RegionType & inRegion,
159 RegionType & outRegion1,
160 RegionType & outRegion2 ) const;
161
162private:
163
164 CyclicBSplineDeformableTransform( const Self & ); // purposely not implemented
165 void operator=( const Self & ); // purposely not implemented
166
167};
168
169} // namespace itk
170
171#ifndef ITK_MANUAL_INSTANTIATION
172#include "itkCyclicBSplineDeformableTransform.hxx"
173#endif
174
175#endif /* __itkCyclicBSplineDeformableTransform_h */
Deformable transform using a B-spline representation.
Superclass::JacobianOfSpatialHessianType JacobianOfSpatialHessianType
Superclass::JacobianOfSpatialJacobianType JacobianOfSpatialJacobianType
Superclass::NonZeroJacobianIndicesType NonZeroJacobianIndicesType
Returns the weights over the support region used for B-spline interpolation/reconstruction.
Deformable transform using a B-spline representation in which the B-spline grid is formulated in a cy...
Superclass::ParameterIndexArrayType ParameterIndexArrayType
RedWeightsFunctionType::ContinuousIndexType RedContinuousIndexType
void GetSpatialJacobian(const InputPointType &ipp, SpatialJacobianType &sj) const override
itkStaticConstMacro(SpaceDimension, unsigned int, NDimensions)
AdvancedBSplineDeformableTransform< TScalarType, NDimensions, VSplineOrder > Superclass
itkStaticConstMacro(SplineOrder, unsigned int, VSplineOrder)
Image< PixelType, itkGetStaticConstMacro(SpaceDimension) > ImageType
void TransformPoint(const InputPointType &inputPoint, OutputPointType &outputPoint, WeightsType &weights, ParameterIndexArrayType &indices, bool &inside) const override
Superclass::NumberOfParametersType NumberOfParametersType
virtual void SplitRegion(const RegionType &imageRegion, const RegionType &inRegion, RegionType &outRegion1, RegionType &outRegion2) const
virtual void GetJacobian(const InputPointType &ipp, WeightsType &weights, ParameterIndexArrayType &indices) const
void SetGridRegion(const RegionType &region) override
bool InsideValidRegion(const ContinuousIndexType &index) const override
Superclass::JacobianOfSpatialHessianType JacobianOfSpatialHessianType
Superclass::JacobianOfSpatialJacobianType JacobianOfSpatialJacobianType
Superclass::NonZeroJacobianIndicesType NonZeroJacobianIndicesType
BSplineInterpolationWeightFunction2< ScalarType, itkGetStaticConstMacro(SpaceDimension) - 1, itkGetStaticConstMacro(SplineOrder) > RedWeightsFunctionType
void ComputeNonZeroJacobianIndices(NonZeroJacobianIndicesType &nonZeroJacobianIndices, const RegionType &supportRegion) const override


Generated on 1667476801 for elastix by doxygen 1.9.4 elastix logo