ITK  6.0.0
Insight Toolkit
itkGaussianSpatialFunction.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 itkGaussianSpatialFunction_h
19#define itkGaussianSpatialFunction_h
20
21#include "itkSpatialFunction.h"
22#include "itkFixedArray.h"
23#include "itkFloatTypes.h"
24
25namespace itk
26{
41template <typename TOutput = double,
42 unsigned int VImageDimension = 3,
43 typename TInput = Point<SpacePrecisionType, VImageDimension>>
44class ITK_TEMPLATE_EXPORT GaussianSpatialFunction : public SpatialFunction<TOutput, VImageDimension, TInput>
45{
46public:
47 ITK_DISALLOW_COPY_AND_MOVE(GaussianSpatialFunction);
48
54
56 itkNewMacro(Self);
57
59 itkOverrideGetNameOfClassMacro(GaussianSpatialFunction);
60
62 using typename Superclass::InputType;
63
65 using typename Superclass::OutputType;
66
69
72 Evaluate(const TInput & position) const override;
73
75 itkSetMacro(Scale, double);
76 itkGetConstMacro(Scale, double);
80 itkSetMacro(Normalized, bool);
81 itkGetConstMacro(Normalized, bool);
82 itkBooleanMacro(Normalized);
86 itkSetMacro(Sigma, ArrayType);
87 itkGetConstMacro(Sigma, ArrayType);
91 itkSetMacro(Mean, ArrayType);
92 itkGetConstMacro(Mean, ArrayType);
95protected:
97 ~GaussianSpatialFunction() override = default;
98 void
99 PrintSelf(std::ostream & os, Indent indent) const override;
100
101private:
102 ArrayType m_Sigma{ ArrayType::Filled(5.0) };
103
104 ArrayType m_Mean{ ArrayType::Filled(10.0) };
105
106 double m_Scale{ 1.0 };
107
108 bool m_Normalized{ false };
109};
110} // end namespace itk
111
112#ifndef ITK_MANUAL_INSTANTIATION
113# include "itkGaussianSpatialFunction.hxx"
114#endif
115
116#endif
Simulate a standard C array with copy semantics.
Definition: itkFixedArray.h:54
N-dimensional Gaussian spatial function class.
~GaussianSpatialFunction() override=default
void PrintSelf(std::ostream &os, Indent indent) const override
OutputType Evaluate(const TInput &position) const override
Control indentation during Print() invocation.
Definition: itkIndent.h:50
N-dimensional spatial function class.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....