go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxRayCastResampleInterpolator.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 elxRayCastResampleInterpolator_h
19#define elxRayCastResampleInterpolator_h
20
21#include "elxIncludes.h" // include first to avoid MSVS warning
25#include "itkEulerTransform.h"
26
27namespace elastix
28{
29
37template <class TElastix>
38class ITK_TEMPLATE_EXPORT RayCastResampleInterpolator
39 : public itk::AdvancedRayCastInterpolateImageFunction<typename ResampleInterpolatorBase<TElastix>::InputImageType,
40 typename ResampleInterpolatorBase<TElastix>::CoordRepType>
41 , public ResampleInterpolatorBase<TElastix>
42{
43public:
45
52 using Pointer = itk::SmartPointer<Self>;
53 using ConstPointer = itk::SmartPointer<const Self>;
54
56 itkNewMacro(Self);
57
60
65 elxClassNameMacro("FinalRayCastInterpolator");
66
68 itkStaticConstMacro(ImageDimension, unsigned int, Superclass1::ImageDimension);
69
71 using typename Superclass1::OutputType;
72 using typename Superclass1::InputImageType;
73 using typename Superclass1::IndexType;
74 using typename Superclass1::ContinuousIndexType;
75 using typename Superclass1::PointType;
76 using typename Superclass1::SizeType;
77 using SpacingType = typename InputImageType::SpacingType;
78
80 using typename Superclass2::ElastixType;
81 using typename Superclass2::RegistrationType;
83
87 using TransformParametersType = typename EulerTransformType::ParametersType;
88 using EulerTransformPointer = typename EulerTransformType::Pointer;
89 using AdvancedTransformType = typename itk::
90 AdvancedTransform<typename InterpolatorBase<TElastix>::CoordRepType, Self::ImageDimension, Self::ImageDimension>;
91 using AdvancedTransformPointer = typename AdvancedTransformType::Pointer;
94 using CombinationTransformPointer = typename CombinationTransformType::Pointer;
95
96 using typename Superclass2::ParameterMapType;
97
98 int
99 BeforeAll() override;
100
101 void
103
105 void
106 ReadFromFile() override;
107
108protected:
111
113 ~RayCastResampleInterpolator() override = default;
114
118 void
120
121private:
123
127
131};
132
133} // end namespace elastix
134
135#ifndef ITK_MANUAL_INSTANTIATION
136# include "elxRayCastResampleInterpolator.hxx"
137#endif
138
139#endif // end elxRayCastResampleInterpolator_h
typename EulerTransformType::ParametersType TransformParametersType
ITK_DISALLOW_COPY_AND_MOVE(RayCastResampleInterpolator)
typename CombinationTransformType::Pointer CombinationTransformPointer
typename AdvancedTransformType::Pointer AdvancedTransformPointer
typename itk::AdvancedCombinationTransform< typename InterpolatorBase< TElastix >::CoordRepType, Self::ImageDimension > CombinationTransformType
itkStaticConstMacro(ImageDimension, unsigned int, Superclass1::ImageDimension)
typename EulerTransformType::Pointer EulerTransformPointer
typename ElastixType::ParameterMapType ParameterMapType
ParameterMapType CreateDerivedTransformParametersMap() const override
typename InputImageType::SpacingType SpacingType
typename Superclass2::ITKBaseType ITKBaseType
~RayCastResampleInterpolator() override=default
typename itk::EulerTransform< typename InterpolatorBase< TElastix >::CoordRepType, ImageDimension > EulerTransformType
typename itk::AdvancedTransform< typename InterpolatorBase< TElastix >::CoordRepType, Self::ImageDimension, Self::ImageDimension > AdvancedTransformType
elxClassNameMacro("FinalRayCastInterpolator")
This class is the elastix base class for all ResampleInterpolators.
itk::InterpolateImageFunction< InputImageType, CoordRepType > ITKBaseType
typename ElastixType::ParameterMapType ParameterMapType
typename ElastixType::RegistrationBaseType RegistrationType
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 Wed 12 Apr 2023 for elastix by doxygen 1.9.6 elastix logo