ITK 6.0.0
Insight Toolkit
 
Loading...
Searching...
No Matches
itkHoughTransform2DCirclesImageFilter.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 itkHoughTransform2DCirclesImageFilter_h
19#define itkHoughTransform2DCirclesImageFilter_h
20
21
24
25namespace itk
26{
59
60template <typename TInputPixelType, typename TOutputPixelType, typename TRadiusPixelType>
61class ITK_TEMPLATE_EXPORT HoughTransform2DCirclesImageFilter
62 : public ImageToImageFilter<Image<TInputPixelType, 2>, Image<TOutputPixelType, 2>>
63{
64public:
65 ITK_DISALLOW_COPY_AND_MOVE(HoughTransform2DCirclesImageFilter);
66
72
77
81
85
88
91
94
98 using CirclesListType = std::list<CirclePointer>;
99
100 using CirclesListSizeType = typename CirclesListType::size_type;
101
103 itkOverrideGetNameOfClassMacro(HoughTransform2DCirclesImageFilter);
104
106 itkNewMacro(Self);
107
109 void
110 VerifyPreconditions() const override;
111
113 void
114 GenerateData() override;
115
117 void
118 SetRadius(double radius);
119
121 itkSetMacro(MinimumRadius, double);
122 itkGetConstMacro(MinimumRadius, double);
124
126 itkSetMacro(MaximumRadius, double);
127 itkGetConstMacro(MaximumRadius, double);
129
132 itkSetMacro(Threshold, double);
133
135 itkGetConstMacro(Threshold, double);
136
139 itkSetMacro(GradientNormThreshold, double);
140 itkGetConstMacro(GradientNormThreshold, double);
142
144 itkGetModifiableObjectMacro(RadiusImage, RadiusImageType);
145
147 itkSetMacro(SigmaGradient, double);
148
150 itkGetConstMacro(SigmaGradient, double);
151
158
160 itkSetMacro(NumberOfCircles, CirclesListSizeType);
161 itkGetConstMacro(NumberOfCircles, CirclesListSizeType);
163
166 itkSetMacro(DiscRadiusRatio, double);
167 itkGetConstMacro(DiscRadiusRatio, double);
169
171 itkSetMacro(Variance, double);
172 itkGetConstMacro(Variance, double);
174
176 itkSetMacro(SweepAngle, double);
177 itkGetConstMacro(SweepAngle, double);
179
182 itkSetMacro(UseImageSpacing, bool);
183 itkGetConstMacro(UseImageSpacing, bool);
185
186 itkConceptMacro(IntConvertibleToOutputCheck, (Concept::Convertible<int, TOutputPixelType>));
190
191protected:
194
195 void
196 PrintSelf(std::ostream & os, Indent indent) const override;
197
201 void
203
208 void
209 EnlargeOutputRequestedRegion(DataObject * itkNotUsed(output)) override;
210
211private:
212 double m_SweepAngle{ 0.0 };
213 double m_MinimumRadius{ 0.0 };
214 double m_MaximumRadius{ 10.0 };
215 double m_Threshold{ 0.0 };
217 double m_SigmaGradient{ 1.0 };
218
222 double m_DiscRadiusRatio{ 1 };
223 double m_Variance{ 10 };
224 bool m_UseImageSpacing{ true };
226};
227} // end namespace itk
228
229#ifndef ITK_MANUAL_INSTANTIATION
230# include "itkHoughTransform2DCirclesImageFilter.hxx"
231#endif
232
233#endif
Base class for all data objects in ITK.
void PrintSelf(std::ostream &os, Indent indent) const override
ImageToImageFilter< Image< TInputPixelType, 2 >, Image< TOutputPixelType, 2 > > Superclass
void VerifyPreconditions() const override
void EnlargeOutputRequestedRegion(DataObject *output) override
~HoughTransform2DCirclesImageFilter() override=default
typename InputImageType::ConstPointer InputImageConstPointer
Templated n-dimensional image class.
Definition itkImage.h:89
SmartPointer< const Self > ConstPointer
Definition itkImage.h:97
ImageRegion< VImageDimension > RegionType
SmartPointer< Self > Pointer
Definition itkImage.h:96
Index< VImageDimension > IndexType
Control indentation during Print() invocation.
Definition itkIndent.h:50
Implements transparent reference counting.
#define itkConceptMacro(name, concept)
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
SizeValueType ModifiedTimeType