ITK 6.0.0
Insight Toolkit
 
Loading...
Searching...
No Matches
itkCurvatureNDAnisotropicDiffusionFunction.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 itkCurvatureNDAnisotropicDiffusionFunction_h
19#define itkCurvatureNDAnisotropicDiffusionFunction_h
20
25
26namespace itk
27{
70template <typename TImage>
72{
73public:
74 ITK_DISALLOW_COPY_AND_MOVE(CurvatureNDAnisotropicDiffusionFunction);
76
82
84 itkNewMacro(Self);
85
87 itkOverrideGetNameOfClassMacro(CurvatureNDAnisotropicDiffusionFunction);
88
90 using typename Superclass::ImageType;
91 using typename Superclass::PixelType;
92 using typename Superclass::TimeStepType;
93 using typename Superclass::RadiusType;
94 using typename Superclass::NeighborhoodType;
95 using typename Superclass::FloatOffsetType;
96
97 using NeighborhoodSizeValueType = typename NeighborhoodType::SizeValueType;
98
100 static constexpr unsigned int ImageDimension = Superclass::ImageDimension;
101
105 void * globalData,
106 const FloatOffsetType & offset = FloatOffsetType(0.0)) override;
107
109 void
111 {
113 this->GetConductanceParameter() * -2.0f);
114 }
115
116protected:
119
120private:
123
128
131
134
136 static double m_MIN_NORM;
137
140};
141} // end namespace itk
142
143#ifndef ITK_MANUAL_INSTANTIATION
144# include "itkCurvatureNDAnisotropicDiffusionFunction.hxx"
145#endif
146
147#endif
PixelType ComputeUpdate(const NeighborhoodType &it, void *globalData, const FloatOffsetType &offset=FloatOffsetType(0.0)) override
~CurvatureNDAnisotropicDiffusionFunction() override=default
DerivativeOperator< PixelType, Self::ImageDimension > m_DerivativeOperator
A NeighborhoodOperator for taking an n-th order derivative at a pixel.
ConstNeighborhoodIterator< TImage, DefaultBoundaryConditionType > NeighborhoodType
Vector< float, Self::ImageDimension > FloatOffsetType
typename ConstNeighborhoodIterator< TImage >::RadiusType RadiusType
Defines the inner product operation between an Neighborhood and a NeighborhoodOperator.
Implements transparent reference counting.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....