ITK 6.0.0
Insight Toolkit
 
Loading...
Searching...
No Matches
itkFastChamferDistanceImageFilter.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 itkFastChamferDistanceImageFilter_h
19#define itkFastChamferDistanceImageFilter_h
20
23#include "itkNarrowBand.h"
24
25namespace itk
26{
57
58template <typename TInputImage, typename TOutputImage>
59class ITK_TEMPLATE_EXPORT FastChamferDistanceImageFilter : public ImageToImageFilter<TInputImage, TOutputImage>
60{
61public:
62 ITK_DISALLOW_COPY_AND_MOVE(FastChamferDistanceImageFilter);
63
69
71 itkNewMacro(Self);
72
74 itkOverrideGetNameOfClassMacro(FastChamferDistanceImageFilter);
75
77 using InputImageType = TInputImage;
78
80 using OutputImageType = TOutputImage;
81
83 using RegionType = typename InputImageType::RegionType;
84
86 using PixelType = typename InputImageType::PixelType;
87
89 using IndexType = typename RegionType::IndexType;
90
92 using OffsetType = typename InputImageType::OffsetType;
93
95 using SizeType = typename RegionType::SizeType;
96
98 static constexpr unsigned int ImageDimension = InputImageType::ImageDimension;
99 static constexpr unsigned int OutputImageDimension = OutputImageType::ImageDimension;
100
102 using InputImagePointer = typename InputImageType::ConstPointer;
103
108
110
112 itkSetMacro(Weights, WeightsType);
113 itkGetConstReferenceMacro(Weights, WeightsType);
115
117 itkSetMacro(MaximumDistance, float);
118 itkGetConstMacro(MaximumDistance, float);
120
122 void
124
127
128 void
130
133
136 itkConceptMacro(FloatConvertibleToPixelTypeCheck, (Concept::Convertible<float, PixelType>));
137 itkConceptMacro(PixelTypeConvertibleToFloatCheck, (Concept::Convertible<PixelType, float>));
138 itkConceptMacro(PixelTypeGreaterThanFloatCheck, (Concept::GreaterThanComparable<PixelType, float>));
140 itkConceptMacro(PixelTypeFloatAdditiveOperatorsCheck, (Concept::AdditiveOperators<PixelType, float, float>));
141 itkConceptMacro(FloatGreaterThanPixelTypeCheck, (Concept::GreaterThanComparable<float, PixelType>));
143
144protected:
147 void
148 PrintSelf(std::ostream & os, Indent indent) const override;
149
152 void
154
157 void
158 GenerateData() override;
159
160private:
162
165
167
170}; // end of FastChamferDistanceImageFilter class
171} // end namespace itk
172
173#ifndef ITK_MANUAL_INSTANTIATION
174# include "itkFastChamferDistanceImageFilter.hxx"
175#endif
176
177#endif
NarrowBandPointer GetNarrowBand() const
~FastChamferDistanceImageFilter() override=default
RegionType GetRegionToProcess() const
void SetNarrowBand(NarrowBandType *ptr)
void SetRegionToProcess(const RegionType &r)
void PrintSelf(std::ostream &os, Indent indent) const override
Simulate a standard C array with copy semantics.
Control indentation during Print() invocation.
Definition itkIndent.h:50
Narrow Band class.
SmartPointer< Self > Pointer
Implements transparent reference counting.
#define itkConceptMacro(name, concept)
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....