ITK
6.0.0
Insight Toolkit
ITK
Modules
Core
Common
include
itkGaussianKernelFunction.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 itkGaussianKernelFunction_h
19
#define itkGaussianKernelFunction_h
20
21
#include "
itkKernelFunctionBase.h
"
22
#include "
itkMath.h
"
23
#include <cmath>
24
25
namespace
itk
26
{
40
template
<
typename
TRealValueType =
double
>
41
class
ITK_TEMPLATE_EXPORT
GaussianKernelFunction
:
public
KernelFunctionBase
<TRealValueType>
42
{
43
public
:
44
ITK_DISALLOW_COPY_AND_MOVE(
GaussianKernelFunction
);
45
47
using
Self
=
GaussianKernelFunction
;
48
using
Superclass
=
KernelFunctionBase<TRealValueType>
;
49
using
Pointer
=
SmartPointer<Self>
;
50
51
using
typename
Superclass::RealType;
53
itkNewMacro(
Self
);
54
56
itkOverrideGetNameOfClassMacro(
GaussianKernelFunction
);
57
59
TRealValueType
60
Evaluate
(
const
TRealValueType & u)
const override
61
{
62
constexpr
auto
negHalf = TRealValueType{ -0.5 };
63
return
std::exp(negHalf * itk::Math::sqr(u)) *
Math::one_over_sqrt2pi
;
64
}
67
protected
:
68
GaussianKernelFunction
() {}
69
~
GaussianKernelFunction
()
override
=
default
;
70
void
71
PrintSelf
(std::ostream & os,
Indent
indent)
const override
72
{
73
Superclass::PrintSelf(os, indent);
74
}
75
};
76
}
// end namespace itk
77
78
#endif
itk::Math::one_over_sqrt2pi
static constexpr double one_over_sqrt2pi
Definition:
itkMath.h:86
itk::GaussianKernelFunction
Gaussian kernel used for density estimation and nonparametric regression.
Definition:
itkGaussianKernelFunction.h:41
itk::KernelFunctionBase
Kernel used for density estimation and nonparametric regression.
Definition:
itkKernelFunctionBase.h:43
itkKernelFunctionBase.h
itk::SmartPointer< Self >
itk::Indent
Control indentation during Print() invocation.
Definition:
itkIndent.h:49
itk::GaussianKernelFunction::GaussianKernelFunction
GaussianKernelFunction()
Definition:
itkGaussianKernelFunction.h:68
itk::GaussianKernelFunction::PrintSelf
void PrintSelf(std::ostream &os, Indent indent) const override
Definition:
itkGaussianKernelFunction.h:71
itk::LightObject
Light weight base class for most itk classes.
Definition:
itkLightObject.h:55
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition:
itkAnatomicalOrientation.h:29
itk::GaussianKernelFunction::Evaluate
TRealValueType Evaluate(const TRealValueType &u) const override
Definition:
itkGaussianKernelFunction.h:60
itkMath.h
Generated on
unknown
for ITK by
1.8.16