ITK
5.4.0
Insight Toolkit
ITK
Modules
Core
ImageAdaptors
include
itkComplexToPhaseImageAdaptor.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 itkComplexToPhaseImageAdaptor_h
19
#define itkComplexToPhaseImageAdaptor_h
20
21
#include "
itkImageAdaptor.h
"
22
#include <complex>
23
24
namespace
itk
25
{
26
namespace
Accessor
27
{
41
template
<
typename
TInternalType,
typename
TExternalType>
42
class
ComplexToPhasePixelAccessor
43
{
44
public
:
45
48
using
ExternalType
= TExternalType;
49
52
using
InternalType
= TInternalType;
53
54
static
inline
void
55
Set
(TInternalType & output,
const
TExternalType & input)
56
{
57
output = (TInternalType)(input);
58
}
59
60
static
inline
TExternalType
61
Get
(
const
TInternalType & input)
62
{
63
return
(TExternalType)(std::atan2(input.imag(), input.real()));
64
}
65
};
66
}
// end namespace Accessor
67
78
template
<
typename
TImage,
typename
TOutputPixelType>
79
class
ComplexToPhaseImageAdaptor
80
:
public
ImageAdaptor
<TImage, Accessor::ComplexToPhasePixelAccessor<typename TImage::PixelType, TOutputPixelType>>
81
{
82
public
:
83
ITK_DISALLOW_COPY_AND_MOVE(
ComplexToPhaseImageAdaptor
);
84
86
using
Self
=
ComplexToPhaseImageAdaptor
;
87
using
Superclass
=
88
ImageAdaptor<TImage, Accessor::ComplexToPhasePixelAccessor<typename TImage::PixelType, TOutputPixelType>
>;
89
using
Pointer
=
SmartPointer<Self>
;
90
using
ConstPointer
=
SmartPointer<const Self>
;
91
93
itkNewMacro(
Self
);
94
96
itkTypeMacro(
ComplexToPhaseImageAdaptor
,
ImageAdaptor
);
97
98
protected
:
99
ComplexToPhaseImageAdaptor
() =
default
;
100
~ComplexToPhaseImageAdaptor
()
override
=
default
;
101
};
102
}
// end namespace itk
103
104
#endif
itk::ComplexToPhaseImageAdaptor::~ComplexToPhaseImageAdaptor
~ComplexToPhaseImageAdaptor() override=default
itk::Accessor::ComplexToPhasePixelAccessor< TImage::PixelType, TOutputPixelType >::InternalType
TImage::PixelType InternalType
Definition:
itkComplexToPhaseImageAdaptor.h:52
itk::SmartPointer< Self >
itkImageAdaptor.h
itk::Accessor::ComplexToPhasePixelAccessor< TImage::PixelType, TOutputPixelType >::ExternalType
TOutputPixelType ExternalType
Definition:
itkComplexToPhaseImageAdaptor.h:48
itk::ImageAdaptor
Give access to partial aspects of voxels from an Image.
Definition:
itkImageAdaptor.h:56
itk::Accessor::ComplexToPhasePixelAccessor
Give access to the Phase part of a std::complex<> value.
Definition:
itkComplexToPhaseImageAdaptor.h:42
itk::ComplexToPhaseImageAdaptor::ComplexToPhaseImageAdaptor
ComplexToPhaseImageAdaptor()=default
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition:
itkAnnulusOperator.h:24
itk::Accessor::ComplexToPhasePixelAccessor::Get
static TExternalType Get(const TInternalType &input)
Definition:
itkComplexToPhaseImageAdaptor.h:61
itk::Object
Base class for most ITK classes.
Definition:
itkObject.h:61
itk::Accessor::ComplexToPhasePixelAccessor::Set
static void Set(TInternalType &output, const TExternalType &input)
Definition:
itkComplexToPhaseImageAdaptor.h:55
itk::ComplexToPhaseImageAdaptor
Presents a complex image as being composed of arg() part of its pixels.
Definition:
itkComplexToPhaseImageAdaptor.h:79
itk::DataObject
Base class for all data objects in ITK.
Definition:
itkDataObject.h:293
Generated on
unknown
for ITK by
1.8.16