go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxRayCastInterpolator.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 elxRayCastInterpolator_h
19#define elxRayCastInterpolator_h
20
21#include "elxIncludes.h" // include first to avoid MSVS warning
25#include "itkEulerTransform.h"
26
27namespace elastix
28{
29
43template <class TElastix>
44class ITK_TEMPLATE_EXPORT RayCastInterpolator
45 : public itk::AdvancedRayCastInterpolateImageFunction<typename InterpolatorBase<TElastix>::InputImageType,
46 typename InterpolatorBase<TElastix>::CoordRepType>
47 , public InterpolatorBase<TElastix>
48{
49public:
51
57 using Pointer = itk::SmartPointer<Self>;
58 using ConstPointer = itk::SmartPointer<const Self>;
59
61 itkNewMacro(Self);
62
65
70 elxClassNameMacro("RayCastInterpolator");
71
73 itkStaticConstMacro(ImageDimension, unsigned int, Superclass1::ImageDimension);
74
76 using typename Superclass1::OutputType;
77 using typename Superclass1::InputImageType;
78 using typename Superclass1::IndexType;
79 using typename Superclass1::ContinuousIndexType;
80 using typename Superclass1::PointType;
81 using typename Superclass1::SizeType;
82 using SpacingType = typename InputImageType::SpacingType;
83
85 using typename Superclass2::ElastixType;
86 using typename Superclass2::RegistrationType;
88
92 using TransformParametersType = typename EulerTransformType::ParametersType;
93 using EulerTransformPointer = typename EulerTransformType::Pointer;
94 using AdvancedTransformType = typename itk::
95 AdvancedTransform<typename InterpolatorBase<TElastix>::CoordRepType, Self::ImageDimension, Self::ImageDimension>;
96 using AdvancedTransformPointer = typename AdvancedTransformType::Pointer;
99 using CombinationTransformPointer = typename CombinationTransformType::Pointer;
100
101protected:
104
106 ~RayCastInterpolator() override = default;
107
108 int
109 BeforeAll() override;
110
111 void
113
114 void
116
117private:
119
123};
124
125} // end namespace elastix
126
127#ifndef ITK_MANUAL_INSTANTIATION
128# include "elxRayCastInterpolator.hxx"
129#endif
130
131#endif // end #ifndef elxRayCastInterpolator_h
This class is the elastix base class for all Interpolators.
itk::InterpolateImageFunction< InputImageType, CoordRepType > ITKBaseType
typename ElastixType::RegistrationBaseType RegistrationType
An interpolator based on the itkAdvancedRayCastInterpolateImageFunction.
void BeforeEachResolution() override
typename itk::AdvancedCombinationTransform< typename InterpolatorBase< TElastix >::CoordRepType, Self::ImageDimension > CombinationTransformType
TransformParametersType m_PreParameters
EulerTransformPointer m_PreTransform
ITK_DISALLOW_COPY_AND_MOVE(RayCastInterpolator)
~RayCastInterpolator() override=default
CombinationTransformPointer m_CombinationTransform
typename itk::EulerTransform< typename InterpolatorBase< TElastix >::CoordRepType, ImageDimension > EulerTransformType
typename Superclass2::ITKBaseType ITKBaseType
typename itk::AdvancedTransform< typename InterpolatorBase< TElastix >::CoordRepType, Self::ImageDimension, Self::ImageDimension > AdvancedTransformType
typename AdvancedTransformType::Pointer AdvancedTransformPointer
typename InputImageType::SpacingType SpacingType
itk::SmartPointer< Self > Pointer
typename EulerTransformType::Pointer EulerTransformPointer
typename EulerTransformType::ParametersType TransformParametersType
itk::SmartPointer< const Self > ConstPointer
itkStaticConstMacro(ImageDimension, unsigned int, Superclass1::ImageDimension)
void BeforeRegistration() override
elxClassNameMacro("RayCastInterpolator")
typename CombinationTransformType::Pointer CombinationTransformPointer
This class combines two transforms: an 'initial transform' with a 'current transform'.
Projective interpolation of an image at specified positions.
This class combines the Euler2DTransform with the Euler3DTransform.


Generated on 2023-01-13 for elastix by doxygen 1.9.6 elastix logo