ITK  6.0.0
Insight Toolkit
itkComplexBSplineInterpolateImageFunction.h
Go to the documentation of this file.
1/*=========================================================================
2 *
3 * Copyright NumFOCUS
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 * https://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 itkComplexBSplineInterpolateImageFunction_h
19#define itkComplexBSplineInterpolateImageFunction_h
20
24
25namespace itk
26{
43template <typename TImageType, typename TCoordRep = double, typename TCoefficientType = double>
45 : public InterpolateImageFunction<TImageType, TCoordRep>
46{
47public:
48 ITK_DISALLOW_COPY_AND_MOVE(ComplexBSplineInterpolateImageFunction);
49
52
55
58
61
63 itkOverrideGetNameOfClassMacro(ComplexBSplineInterpolateImageFunction);
64
66 itkNewMacro(Self);
67
69 static constexpr unsigned int ImageDimension = Superclass::ImageDimension;
70
72 using typename Superclass::OutputType;
73
75 using typename Superclass::InputImageType;
76
78 using typename Superclass::IndexType;
79
81 using typename Superclass::SizeType;
82
84 using typename Superclass::ContinuousIndexType;
85
87 using typename Superclass::PointType;
88
91
95
98
108 EvaluateAtContinuousIndex(const ContinuousIndexType & index) const override;
109
111 /* using CovariantVectorType = CovariantVector< OutputType, Self::ImageDimension >;
112
113 CovariantVectorType EvaluateDerivative( const PointType & point ) const
114 {
115 ContinuousIndexType index;
116 this->GetInputImage()->TransformPhysicalPointToContinuousIndex( point, index );
117 return ( this->EvaluateDerivativeAtContinuousIndex( index ) );
118 }
119
120 CovariantVectorType EvaluateDerivativeAtContinuousIndex( const ContinuousIndexType & x ) const;
121 */
122
125 void
126 SetSplineOrder(unsigned int SplineOrder);
127
128 itkGetConstMacro(SplineOrder, unsigned int);
129
132 void
133 SetInputImage(const TImageType * inputData) override;
134
136 GetRadius() const override
137 {
138 return SizeType::Filled(m_SplineOrder + 1);
139 }
140
141protected:
144
145 void
146 PrintSelf(std::ostream & os, Indent indent) const override;
147
148private:
149 unsigned int m_SplineOrder{};
150
151 typename InterpolatorType::Pointer m_RealInterpolator{};
152 typename InterpolatorType::Pointer m_ImaginaryInterpolator{};
153
154 typename RealFilterType::Pointer m_RealFilter{};
155
156 typename ImaginaryFilterType::Pointer m_ImaginaryFilter{};
157}; // class
158} // namespace itk
159
160#ifndef ITK_MANUAL_INSTANTIATION
161# include "itkComplexBSplineInterpolateImageFunction.hxx"
162#endif
163
164#endif
Evaluates the B-Spline interpolation of an image. Spline order may be from 0 to 5.
Complex wrapper around BSplineInterpolateImageFunction.
~ComplexBSplineInterpolateImageFunction() override=default
OutputType EvaluateAtContinuousIndex(const ContinuousIndexType &index) const override
void SetSplineOrder(unsigned int SplineOrder)
void SetInputImage(const TImageType *inputData) override
void PrintSelf(std::ostream &os, Indent indent) const override
Computes pixel-wise the imaginary part of a complex image.
Computes pixel-wise the real(x) part of a complex image.
Templated n-dimensional image class.
Definition: itkImage.h:89
Control indentation during Print() invocation.
Definition: itkIndent.h:50
Base class for all image interpolators.
Light weight base class for most itk classes.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....