ITK  6.0.0
Insight Toolkit
itkComplexToImaginaryImageAdaptor.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 itkComplexToImaginaryImageAdaptor_h
19#define itkComplexToImaginaryImageAdaptor_h
20
21#include "itkImageAdaptor.h"
22#include <complex>
23
24namespace itk
25{
26namespace Accessor
27{
44template <typename TInternalType, typename TExternalType>
46{
47public:
48
51 using ExternalType = TExternalType;
52
55 using InternalType = TInternalType;
56
57 static inline void
58 Set(TInternalType & output, const TExternalType & input)
59 {
60 output = (TInternalType)(input);
61 }
62
63 static inline TExternalType
64 Get(const TInternalType & input)
65 {
66 return (TExternalType)(input.imag());
67 }
68};
69} // end namespace Accessor
70
82template <typename TImage, typename TOutputPixelType>
84 : public ImageAdaptor<TImage, Accessor::ComplexToImaginaryPixelAccessor<typename TImage::PixelType, TOutputPixelType>>
85{
86public:
87 ITK_DISALLOW_COPY_AND_MOVE(ComplexToImaginaryImageAdaptor);
88
91 using Superclass =
93
96
98 itkNewMacro(Self);
99
101 itkOverrideGetNameOfClassMacro(ComplexToImaginaryImageAdaptor);
102
103protected:
106};
107} // end namespace itk
108
109#endif
Give access to the Imaginary part of a std::complex<> value.
static TExternalType Get(const TInternalType &input)
static void Set(TInternalType &output, const TExternalType &input)
Presents a complex image as being composed of imag() part of its pixels.
~ComplexToImaginaryImageAdaptor() override=default
Base class for all data objects in ITK.
Give access to partial aspects of voxels from an Image.
Base class for most ITK classes.
Definition: itkObject.h:62
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....