ITK  6.0.0
Insight Toolkit
itkAntiAliasBinaryImageFilter.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 itkAntiAliasBinaryImageFilter_h
19#define itkAntiAliasBinaryImageFilter_h
22
23namespace itk
24{
106template <typename TInputImage, typename TOutputImage>
107class ITK_TEMPLATE_EXPORT AntiAliasBinaryImageFilter : public SparseFieldLevelSetImageFilter<TInputImage, TOutputImage>
108{
109public:
110 ITK_DISALLOW_COPY_AND_MOVE(AntiAliasBinaryImageFilter);
118
120 using typename Superclass::ValueType;
121 using typename Superclass::IndexType;
122 using typename Superclass::TimeStepType;
123 using typename Superclass::OutputImageType;
124 using typename Superclass::InputImageType;
125
128
130 using BinaryValueType = typename TInputImage::ValueType;
131
133 itkNewMacro(Self);
134
136 itkOverrideGetNameOfClassMacro(AntiAliasBinaryImageFilter);
137
139 itkGetConstMacro(UpperBinaryValue, BinaryValueType);
140 itkGetConstMacro(LowerBinaryValue, BinaryValueType);
145 void
146 SetMaximumIterations(unsigned int i)
147 {
148 itkWarningMacro("SetMaximumIterations is deprecated. Please use SetNumberOfIterations instead.");
149 this->SetNumberOfIterations(i);
150 }
153 unsigned int
154 GetMaximumIterations()
155 {
156 itkWarningMacro("GetMaximumIterations is deprecated. Please use GetNumberOfIterations instead.");
157 return this->GetNumberOfIterations();
158 }
159
160#ifdef ITK_USE_CONCEPT_CHECKING
161 // Begin concept checking
164 // End concept checking
165#endif
166
167protected:
169 ~AntiAliasBinaryImageFilter() override = default;
170 void
171 PrintSelf(std::ostream & os, Indent indent) const override;
172
176 CalculateUpdateValue(const IndexType & idx,
177 const TimeStepType & dt,
178 const ValueType & value,
179 const ValueType & change) override;
180
183 void
184 GenerateData() override;
185
186private:
187 BinaryValueType m_UpperBinaryValue{};
188 BinaryValueType m_LowerBinaryValue{};
190 typename CurvatureFunctionType::Pointer m_CurvatureFunction{};
192 const TInputImage * m_InputImage{};
193};
194} // end namespace itk
195
196#ifndef ITK_MANUAL_INSTANTIATION
197# include "itkAntiAliasBinaryImageFilter.hxx"
198#endif
199
200#endif
A method for estimation of a surface from a binary volume.
typename TInputImage::ValueType BinaryValueType
This class encapsulate the finite difference equation which drives a curvature flow denoising algorit...
typename FiniteDifferenceFunctionType::TimeStepType TimeStepType
Base class for all process objects that output image data.
Control indentation during Print() invocation.
Definition: itkIndent.h:50
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
This class implements a finite difference partial differential equation solver for evolving surfaces ...
typename OutputImageType::IndexType IndexType
typename OutputImageType::ValueType ValueType
#define itkConceptMacro(name, concept)
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....