ITK 6.0.0
Insight Toolkit
 
Loading...
Searching...
No Matches
itkGradientMagnitudeRecursiveGaussianImageFilter.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 itkGradientMagnitudeRecursiveGaussianImageFilter_h
19#define itkGradientMagnitudeRecursiveGaussianImageFilter_h
20
22#include "itkImage.h"
23#include "itkPixelTraits.h"
25#include "itkSqrtImageFilter.h"
27#include <array>
28
29namespace itk
30{
47// NOTE that the typename macro has to be used here in lieu
48// of "typename" because VC++ doesn't like the typename keyword
49// on the defaults of template parameters
50template <typename TInputImage, typename TOutputImage = TInputImage>
52 : public InPlaceImageFilter<TInputImage, TOutputImage>
53{
54public:
55 ITK_DISALLOW_COPY_AND_MOVE(GradientMagnitudeRecursiveGaussianImageFilter);
56
62
64 using InputImageType = TInputImage;
65 using PixelType = typename InputImageType::PixelType;
66
68 static constexpr unsigned int ImageDimension = TInputImage::ImageDimension;
69
71
75
76 using InternalRealType = float;
78
81
84
87
90
93
95
97 using OutputImagePointer = typename TOutputImage::Pointer;
98
100 using OutputImageType = TOutputImage;
101 using OutputPixelType = typename OutputImageType::PixelType;
102
107
109 itkNewMacro(Self);
110
112 itkOverrideGetNameOfClassMacro(GradientMagnitudeRecursiveGaussianImageFilter);
113
116 void
126 void
127 SetNormalizeAcrossScale(bool normalize);
128 itkGetConstMacro(NormalizeAcrossScale, bool);
129 itkBooleanMacro(NormalizeAcrossScale);
131 void
133
134 itkConceptMacro(InputHasNumericTraitsCheck, (Concept::HasNumericTraits<PixelType>));
135
136protected:
139 void
140 PrintSelf(std::ostream & os, Indent indent) const override;
141
143 void
144 GenerateData() override;
145
152 void
154
158 void
160
161private:
164
169
172};
173} // end namespace itk
174
175#ifndef ITK_MANUAL_INSTANTIATION
176# include "itkGradientMagnitudeRecursiveGaussianImageFilter.hxx"
177#endif
178
179#endif
Implements pixel-wise generic operation of two images, or of an image and a constant.
Base class for all data objects in ITK.
void SetNumberOfWorkUnits(ThreadIdType nb) override
void PrintSelf(std::ostream &os, Indent indent) const override
RecursiveGaussianImageFilter< RealImageType, RealImageType > GaussianFilterType
void EnlargeOutputRequestedRegion(DataObject *output) override
BinaryGeneratorImageFilter< RealImageType, RealImageType, RealImageType > SqrSpacingFilterType
RecursiveGaussianImageFilter< InputImageType, RealImageType > DerivativeFilterType
std::array< GaussianFilterPointer, ImageDimension - 1 > m_SmoothingFilters
Templated n-dimensional image class.
Definition itkImage.h:89
Control indentation during Print() invocation.
Definition itkIndent.h:50
Base class for computing IIR convolution with an approximation of a Gaussian kernel.
Implements transparent reference counting.
Computes the square root of each pixel.
#define itkConceptMacro(name, concept)
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
unsigned int ThreadIdType