ITK  6.0.0
Insight Toolkit
itkAnisotropicFourthOrderLevelSetImageFilter.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 itkAnisotropicFourthOrderLevelSetImageFilter_h
19#define itkAnisotropicFourthOrderLevelSetImageFilter_h
20
22
23namespace itk
24{
82template <typename TInputImage, typename TOutputImage>
84 : public SparseFieldFourthOrderLevelSetImageFilter<TInputImage, TOutputImage>
85{
86public:
87 ITK_DISALLOW_COPY_AND_MOVE(AnisotropicFourthOrderLevelSetImageFilter);
93
96
98 itkOverrideGetNameOfClassMacro(AnisotropicFourthOrderLevelSetImageFilter);
99
101 itkNewMacro(Self);
102
104 using typename Superclass::SparseImageType;
105
109
112
113 itkGetConstMacro(MaxFilterIteration, unsigned int);
114 itkSetMacro(MaxFilterIteration, unsigned int);
115
116protected:
119 void
120 PrintSelf(std::ostream & os, Indent indent) const override;
121
123 bool
124 Halt() override
125 {
126 if (this->GetElapsedIterations() == m_MaxFilterIteration)
127 {
128 return true;
129 }
130 else
131 {
132 return false;
133 }
134 }
137private:
139 typename FunctionType::Pointer m_Function{};
140
142 unsigned int m_MaxFilterIteration{};
143};
144} // end namespace itk
145
146#ifndef ITK_MANUAL_INSTANTIATION
147# include "itkAnisotropicFourthOrderLevelSetImageFilter.hxx"
148#endif
149
150#endif
This class implements the 4th-order level set anisotropic diffusion (smoothing) PDE.
void PrintSelf(std::ostream &os, Indent indent) const override
~AnisotropicFourthOrderLevelSetImageFilter() override=default
typename ConstNeighborhoodIterator< TImageType >::RadiusType RadiusType
typename FiniteDifferenceFunctionType::RadiusType RadiusType
Base class for all process objects that output image data.
Control indentation during Print() invocation.
Definition: itkIndent.h:50
This class extends the LevelSetFunction class by adding a grow term based on a target curvature store...
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
This class implements the fourth order level set PDE framework.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....