ITK  5.0.0
Insight Segmentation and Registration Toolkit
itkComplexBSplineInterpolateImageFunction.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright Insight Software Consortium
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_ASSIGN(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 ContinuousIndexType = typename Superclass::ContinuousIndexType;
82 
84  using PointType = typename Superclass::PointType;
85 
88 
92 
95 
104  OutputType EvaluateAtContinuousIndex(const ContinuousIndexType & index) const override;
105 
107 /* using CovariantVectorType = CovariantVector< OutputType, Self::ImageDimension >;
108 
109  CovariantVectorType EvaluateDerivative( const PointType & point ) const
110  {
111  ContinuousIndexType index;
112  this->GetInputImage()->TransformPhysicalPointToContinuousIndex( point, index );
113  return ( this->EvaluateDerivativeAtContinuousIndex( index ) );
114  }
115 
116  CovariantVectorType EvaluateDerivativeAtContinuousIndex( const ContinuousIndexType & x ) const;
117 */
118 
121  void SetSplineOrder(unsigned int SplineOrder);
122 
123  itkGetConstMacro(SplineOrder, int);
124 
127  void SetInputImage(const TImageType *inputData) override;
128 
129 protected:
132 
133  void PrintSelf(std::ostream & os, Indent indent) const override;
134 
135 private:
136  unsigned int m_SplineOrder;
137 
140 
142 
144 }; // class
145 } // namespace
146 
147 #ifndef ITK_MANUAL_INSTANTIATION
148 #include "itkComplexBSplineInterpolateImageFunction.hxx"
149 #endif
150 
151 #endif
Light weight base class for most itk classes.
Computes pixel-wise the imaginary part of a complex image.
Complex wrapper around BSplineInterpolateImageFunction.
Base class for all image interpolaters.
Control indentation during Print() invocation.
Definition: itkIndent.h:49
Evaluates the B-Spline interpolation of an image. Spline order may be from 0 to 5.
Computes pixel-wise the real(x) part of a complex image.
Templated n-dimensional image class.
Definition: itkImage.h:75