ITK  6.0.0
Insight Toolkit
itkGaborImageSource.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 itkGaborImageSource_h
19#define itkGaborImageSource_h
20
22#include "itkFixedArray.h"
23
24namespace itk
25{
47template <typename TOutputImage>
48class ITK_TEMPLATE_EXPORT GaborImageSource : public GenerateImageSource<TOutputImage>
49{
50public:
51 ITK_DISALLOW_COPY_AND_MOVE(GaborImageSource);
52
58
60 using OutputImageType = TOutputImage;
61 using PixelType = typename OutputImageType::PixelType;
63 using SpacingType = typename OutputImageType::SpacingType;
66
68
70 itkOverrideGetNameOfClassMacro(GaborImageSource);
71
73 itkNewMacro(Self);
74
76 static constexpr unsigned int ImageDimension = OutputImageType::ImageDimension;
77
80
82 itkSetMacro(Sigma, ArrayType);
83 itkGetConstReferenceMacro(Sigma, ArrayType);
87 itkSetMacro(Mean, ArrayType);
88 itkGetConstReferenceMacro(Mean, ArrayType);
92 itkSetMacro(Frequency, double);
93 itkGetConstReferenceMacro(Frequency, double);
98 itkSetMacro(CalculateImaginaryPart, bool);
99 itkGetConstReferenceMacro(CalculateImaginaryPart, bool);
100 itkBooleanMacro(CalculateImaginaryPart);
103protected:
105 ~GaborImageSource() override = default;
106 void
107 PrintSelf(std::ostream & os, Indent indent) const override;
108
109 void
110 GenerateData() override;
111
112private:
113 bool m_CalculateImaginaryPart{ false };
114
115 double m_Frequency{ 0.4 };
116
118 double m_PhaseOffset{ 0.0 };
119
120 ArrayType m_Sigma{};
121
122 ArrayType m_Mean{};
123};
124} // end namespace itk
125
126#ifndef ITK_MANUAL_INSTANTIATION
127# include "itkGaborImageSource.hxx"
128#endif
129
130#endif
Generate an n-dimensional image of a Gabor filter.
typename OutputImageType::DirectionType DirectionType
typename OutputImageType::PointType PointType
typename OutputImageType::PixelType PixelType
~GaborImageSource() override=default
void PrintSelf(std::ostream &os, Indent indent) const override
typename OutputImageType::SpacingType SpacingType
typename RegionType::SizeType SizeType
void GenerateData() override
typename OutputImageType::RegionType RegionType
a Base class for image sources which need to have image size, and other meta-data set.
Base class for all process objects that output image data.
TOutputImage OutputImageType
Control indentation during Print() invocation.
Definition: itkIndent.h:50
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....