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 
21 #include "itkGenerateImageSource.h"
22 #include "itkFixedArray.h"
23 
24 namespace itk
25 {
47 template <typename TOutputImage>
48 class ITK_TEMPLATE_EXPORT GaborImageSource : public GenerateImageSource<TOutputImage>
49 {
50 public:
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 
67  using SizeType = typename RegionType::SizeType;
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);
103 protected:
105  ~GaborImageSource() override = default;
106  void
107  PrintSelf(std::ostream & os, Indent indent) const override;
108 
109  void
110  GenerateData() override;
111 
112 private:
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
itk::GaborImageSource::RegionType
typename OutputImageType::RegionType RegionType
Definition: itkGaborImageSource.h:62
itk::GaborImageSource
Generate an n-dimensional image of a Gabor filter.
Definition: itkGaborImageSource.h:48
itk::GTest::TypedefsAndConstructors::Dimension2::DirectionType
ImageBaseType::DirectionType DirectionType
Definition: itkGTestTypedefsAndConstructors.h:52
itk::GenerateImageSource
a Base class for image sources which need to have image size, and other meta-data set.
Definition: itkGenerateImageSource.h:41
itk::GaborImageSource::SizeType
typename RegionType::SizeType SizeType
Definition: itkGaborImageSource.h:67
itk::GTest::TypedefsAndConstructors::Dimension2::PointType
ImageBaseType::PointType PointType
Definition: itkGTestTypedefsAndConstructors.h:51
itk::GTest::TypedefsAndConstructors::Dimension2::SizeType
ImageBaseType::SizeType SizeType
Definition: itkGTestTypedefsAndConstructors.h:49
itk::SmartPointer< Self >
itk::Indent
Control indentation during Print() invocation.
Definition: itkIndent.h:49
itk::GaborImageSource::SpacingType
typename OutputImageType::SpacingType SpacingType
Definition: itkGaborImageSource.h:63
itk::ImageSource
Base class for all process objects that output image data.
Definition: itkImageSource.h:67
itk::GTest::TypedefsAndConstructors::Dimension2::RegionType
ImageBaseType::RegionType RegionType
Definition: itkGTestTypedefsAndConstructors.h:54
itkFixedArray.h
itk::FixedArray< double, Self::ImageDimension >
itk::GaborImageSource::PointType
typename OutputImageType::PointType PointType
Definition: itkGaborImageSource.h:64
itkGenerateImageSource.h
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition: itkAnatomicalOrientation.h:29
itk::ProcessObject
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
Definition: itkProcessObject.h:139
itk::GaborImageSource::PixelType
typename OutputImageType::PixelType PixelType
Definition: itkGaborImageSource.h:61
itk::ImageSource::OutputImageType
TOutputImage OutputImageType
Definition: itkImageSource.h:90
itk::GaborImageSource::DirectionType
typename OutputImageType::DirectionType DirectionType
Definition: itkGaborImageSource.h:65