ITK 6.0.0
Insight Toolkit
 
Loading...
Searching...
No Matches
itkMultiphaseDenseFiniteDifferenceImageFilter.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 itkMultiphaseDenseFiniteDifferenceImageFilter_h
19#define itkMultiphaseDenseFiniteDifferenceImageFilter_h
20
24#include "itkNumericTraits.h"
26
27#include <list>
28
29namespace itk
30{
93template <typename TInputImage,
94 typename TFeatureImage,
95 typename TOutputImage,
96 typename TFunction,
97 typename TIdCell = unsigned int>
99 : public MultiphaseFiniteDifferenceImageFilter<TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell>
100{
101public:
102 ITK_DISALLOW_COPY_AND_MOVE(MultiphaseDenseFiniteDifferenceImageFilter);
103
110
112 itkOverrideGetNameOfClassMacro(MultiphaseDenseFiniteDifferenceImageFilter);
113
116 static constexpr unsigned int ImageDimension = Superclass::ImageDimension;
117
119 using typename Superclass::InputImageType;
120 using typename Superclass::InputImagePointer;
121 using typename Superclass::InputRegionType;
122 using typename Superclass::InputSizeType;
123 using typename Superclass::InputSizeValueType;
124 using typename Superclass::InputIndexType;
125 using typename Superclass::InputIndexValueType;
126 using typename Superclass::InputPixelType;
127 using typename Superclass::InputPointType;
128 using typename Superclass::InputSpacingType;
129 using ValueType = typename InputImageType::ValueType;
130
131 using typename Superclass::FeatureImageType;
132 using typename Superclass::FeatureSizeType;
133 using typename Superclass::FeatureImagePointer;
134 using typename Superclass::FeatureRegionType;
135 using typename Superclass::FeatureSpacingType;
136 using typename Superclass::FeaturePointType;
137 using typename Superclass::FeaturePixelType;
138
139 using typename Superclass::OutputImageType;
140 using typename Superclass::OutputImagePointer;
141 using typename Superclass::OutputRegionType;
142 using typename Superclass::OutputSizeType;
144 using typename Superclass::OutputIndexType;
146 using OutputPixelType = typename OutputImageType::PixelType;
147
148 using typename Superclass::IdCellType;
149
152
155
158 using NeighborhoodIteratorType = typename FiniteDifferenceFunctionType::NeighborhoodType;
159
161 using typename Superclass::TimeStepType;
162
165
166 void
168
170 itkConceptMacro(OutputAdditiveOperatorsCheck, (Concept::AdditiveOperators<OutputPixelType>));
172
173 itkSetMacro(ReinitializeCounter, unsigned int);
174 itkGetMacro(ReinitializeCounter, unsigned int);
175
176protected:
178 {
179 this->m_ReinitializeCounter = 1;
180 // FIXME: this->m_UpdateCounter really used?
181 // this->m_UpdateCounter = 0; // FIXME: Should this be a bool ?
182 }
183
185
186 void
187 PrintSelf(std::ostream &, Indent indent) const override;
188
192 void
194
195 void
197
201 void
203
204 unsigned int m_ReinitializeCounter{}; // FIXME: Should this be a boolean ?
205 // unsigned int m_UpdateCounter; // FIXME: Should this be a boolean ?
206
207private:
210 void
212
217 CalculateChange() override;
218
220 std::vector<InputImagePointer> m_UpdateBuffers{};
221};
222} // end namespace itk
223
224#ifndef ITK_MANUAL_INSTANTIATION
225# include "itkMultiphaseDenseFiniteDifferenceImageFilter.hxx"
226#endif
227
228#endif
Binarize an input image by thresholding.
Control indentation during Print() invocation.
Definition itkIndent.h:50
NeighborhoodAlgorithm::ImageBoundaryFacesCalculator< InputImageType > FaceCalculatorType
void PrintSelf(std::ostream &, Indent indent) const override
~MultiphaseDenseFiniteDifferenceImageFilter() override=default
void ApplyUpdate(TimeStepType dt) override
BinaryThresholdImageFilter< InputImageType, InputImageType > ThresholdFilterType
MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell > Superclass
SignedMaurerDistanceMapImageFilter< InputImageType, InputImageType > MaurerType
typename FiniteDifferenceFunctionType::NeighborhoodType NeighborhoodIteratorType
typename FiniteDifferenceFunctionType::TimeStepType TimeStepType
This filter calculates the Euclidean distance transform of a binary image in linear time for arbitrar...
Implements transparent reference counting.
#define itkConceptMacro(name, concept)
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Splits an image into a main region and several "face" regions which are used to handle computations o...