ITK
5.2.0
Insight Toolkit
ITK
Modules
Core
ImageAdaptors
include
itkComplexToModulusImageAdaptor.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 itkComplexToModulusImageAdaptor_h
19
#define itkComplexToModulusImageAdaptor_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
ComplexToModulusPixelAccessor
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::sqrt(input.real() * input.real() + input.imag() * input.imag()));
64
}
65
};
66
}
// end namespace Accessor
67
79
template
<
typename
TImage,
typename
TOutputPixelType>
80
class
ComplexToModulusImageAdaptor
81
:
public
ImageAdaptor
<TImage, Accessor::ComplexToModulusPixelAccessor<typename TImage::PixelType, TOutputPixelType>>
82
{
83
public
:
84
ITK_DISALLOW_COPY_AND_MOVE(
ComplexToModulusImageAdaptor
);
85
87
using
Self
=
ComplexToModulusImageAdaptor
;
88
using
Superclass
=
89
ImageAdaptor<TImage, Accessor::ComplexToModulusPixelAccessor<typename TImage::PixelType, TOutputPixelType>
>;
90
91
using
Pointer
=
SmartPointer<Self>
;
92
using
ConstPointer
=
SmartPointer<const Self>
;
93
95
itkNewMacro(
Self
);
96
98
itkTypeMacro(
ComplexToModulusImageAdaptor
,
ImageAdaptor
);
99
100
protected
:
101
ComplexToModulusImageAdaptor
() =
default
;
102
~ComplexToModulusImageAdaptor
()
override
=
default
;
103
};
104
}
// end namespace itk
105
106
#endif
itk::ComplexToModulusImageAdaptor::ComplexToModulusImageAdaptor
ComplexToModulusImageAdaptor()=default
itk::ComplexToModulusImageAdaptor::~ComplexToModulusImageAdaptor
~ComplexToModulusImageAdaptor() override=default
itk::Accessor::ComplexToModulusPixelAccessor::Get
static TExternalType Get(const TInternalType &input)
Definition:
itkComplexToModulusImageAdaptor.h:61
itk::SmartPointer< Self >
itkImageAdaptor.h
itk::ImageAdaptor
Give access to partial aspects of voxels from an Image.
Definition:
itkImageAdaptor.h:56
itk::Accessor::ComplexToModulusPixelAccessor< TImage::PixelType, TOutputPixelType >::InternalType
TImage::PixelType InternalType
Definition:
itkComplexToModulusImageAdaptor.h:52
itk::ComplexToModulusImageAdaptor
Presents a complex image as being composed of std::abs() part of its pixels.
Definition:
itkComplexToModulusImageAdaptor.h:80
itk::Accessor::ComplexToModulusPixelAccessor< TImage::PixelType, TOutputPixelType >::ExternalType
TOutputPixelType ExternalType
Definition:
itkComplexToModulusImageAdaptor.h:48
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition:
itkAnnulusOperator.h:24
itk::Object
Base class for most ITK classes.
Definition:
itkObject.h:62
itk::Accessor::ComplexToModulusPixelAccessor::Set
static void Set(TInternalType &output, const TExternalType &input)
Definition:
itkComplexToModulusImageAdaptor.h:55
itk::Accessor::ComplexToModulusPixelAccessor
Give access to the Modulus of a std::complex<> value.
Definition:
itkComplexToModulusImageAdaptor.h:42
itk::DataObject
Base class for all data objects in ITK.
Definition:
itkDataObject.h:293
Generated on Thu Apr 1 2021 01:39:03 for ITK by
1.8.16