ITK  5.3.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  * 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 itkComplexBSplineInterpolateImageFunction_h
19 #define itkComplexBSplineInterpolateImageFunction_h
20 
24 
25 namespace itk
26 {
43 template <typename TImageType, typename TCoordRep = double, typename TCoefficientType = double>
44 class ITK_TEMPLATE_EXPORT ComplexBSplineInterpolateImageFunction
45  : public InterpolateImageFunction<TImageType, TCoordRep>
46 {
47 public:
48  ITK_DISALLOW_COPY_AND_MOVE(ComplexBSplineInterpolateImageFunction);
49 
52 
55 
58 
61 
64 
66  itkNewMacro(Self);
67 
69  static constexpr unsigned int ImageDimension = Superclass::ImageDimension;
70 
72  using OutputType = typename Superclass::OutputType;
73 
75  using InputImageType = typename Superclass::InputImageType;
76 
78  using IndexType = typename Superclass::IndexType;
79 
81  using SizeType = typename Superclass::SizeType;
82 
84  using ContinuousIndexType = typename Superclass::ContinuousIndexType;
85 
87  using PointType = typename Superclass::PointType;
88 
91 
95 
98 
107  OutputType
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, int);
129 
132  void
133  SetInputImage(const TImageType * inputData) override;
134 
135  SizeType
136  GetRadius() const override
137  {
138  return SizeType::Filled(m_SplineOrder + 1);
139  }
140 
141 protected:
143  ~ComplexBSplineInterpolateImageFunction() override = default;
144 
145  void
146  PrintSelf(std::ostream & os, Indent indent) const override;
147 
148 private:
149  unsigned int m_SplineOrder;
150 
153 
155 
157 }; // class
158 } // namespace itk
159 
160 #ifndef ITK_MANUAL_INSTANTIATION
161 # include "itkComplexBSplineInterpolateImageFunction.hxx"
162 #endif
163 
164 #endif
itk::ComplexBSplineInterpolateImageFunction::m_ImaginaryFilter
ImaginaryFilterType::Pointer m_ImaginaryFilter
Definition: itkComplexBSplineInterpolateImageFunction.h:156
itk::BSplineInterpolateImageFunction
Evaluates the B-Spline interpolation of an image. Spline order may be from 0 to 5.
Definition: itkBSplineInterpolateImageFunction.h:82
itk::ComplexBSplineInterpolateImageFunction::m_ImaginaryInterpolator
InterpolatorType::Pointer m_ImaginaryInterpolator
Definition: itkComplexBSplineInterpolateImageFunction.h:152
itk::GTest::TypedefsAndConstructors::Dimension2::PointType
ImageBaseType::PointType PointType
Definition: itkGTestTypedefsAndConstructors.h:51
itk::GTest::TypedefsAndConstructors::Dimension2::SizeType
ImageBaseType::SizeType SizeType
Definition: itkGTestTypedefsAndConstructors.h:49
itk::ComplexBSplineInterpolateImageFunction::PointType
typename Superclass::PointType PointType
Definition: itkComplexBSplineInterpolateImageFunction.h:87
itk::SmartPointer< Self >
itk::Indent
Control indentation during Print() invocation.
Definition: itkIndent.h:49
itk::ComplexBSplineInterpolateImageFunction::SizeType
typename Superclass::SizeType SizeType
Definition: itkComplexBSplineInterpolateImageFunction.h:81
itk::ComplexBSplineInterpolateImageFunction::m_SplineOrder
unsigned int m_SplineOrder
Definition: itkComplexBSplineInterpolateImageFunction.h:149
itkComplexToImaginaryImageFilter.h
itk::GTest::TypedefsAndConstructors::Dimension2::IndexType
ImageBaseType::IndexType IndexType
Definition: itkGTestTypedefsAndConstructors.h:50
itkBSplineInterpolateImageFunction.h
itk::ComplexBSplineInterpolateImageFunction::OutputType
typename Superclass::OutputType OutputType
Definition: itkComplexBSplineInterpolateImageFunction.h:72
itk::ComplexToImaginaryImageFilter
Computes pixel-wise the imaginary part of a complex image.
Definition: itkComplexToImaginaryImageFilter.h:63
itk::ComplexBSplineInterpolateImageFunction::IndexType
typename Superclass::IndexType IndexType
Definition: itkComplexBSplineInterpolateImageFunction.h:78
itk::LightObject
Light weight base class for most itk classes.
Definition: itkLightObject.h:59
itk::ComplexBSplineInterpolateImageFunction
Complex wrapper around BSplineInterpolateImageFunction.
Definition: itkComplexBSplineInterpolateImageFunction.h:44
itkComplexToRealImageFilter.h
itk::ComplexBSplineInterpolateImageFunction::InputImageType
typename Superclass::InputImageType InputImageType
Definition: itkComplexBSplineInterpolateImageFunction.h:75
itk::ComplexBSplineInterpolateImageFunction::ContinuousIndexType
typename Superclass::ContinuousIndexType ContinuousIndexType
Definition: itkComplexBSplineInterpolateImageFunction.h:84
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition: itkAnnulusOperator.h:24
itk::ComplexBSplineInterpolateImageFunction::m_RealFilter
RealFilterType::Pointer m_RealFilter
Definition: itkComplexBSplineInterpolateImageFunction.h:154
itk::ComplexBSplineInterpolateImageFunction::m_RealInterpolator
InterpolatorType::Pointer m_RealInterpolator
Definition: itkComplexBSplineInterpolateImageFunction.h:151
itk::Image
Templated n-dimensional image class.
Definition: itkImage.h:86
itk::InterpolateImageFunction
Base class for all image interpolators.
Definition: itkInterpolateImageFunction.h:45
itk::ComplexBSplineInterpolateImageFunction::GetRadius
SizeType GetRadius() const override
Definition: itkComplexBSplineInterpolateImageFunction.h:136
itk::ComplexToRealImageFilter
Computes pixel-wise the real(x) part of a complex image.
Definition: itkComplexToRealImageFilter.h:61