18 #ifndef itkAnnulusOperator_h
19 #define itkAnnulusOperator_h
71 template <
typename TPixel,
unsigned int TDimension = 2,
typename TAllocator = NeighborhoodAllocator<TPixel>>
72 class ITK_TEMPLATE_EXPORT
AnnulusOperator :
public NeighborhoodOperator<TPixel, TDimension, TAllocator>
78 using Superclass = NeighborhoodOperator<TPixel, TDimension, TAllocator>;
82 using OffsetType =
typename Superclass::OffsetType;
83 using SpacingType = Vector<double, TDimension>;
95 SetInnerRadius(
double r)
100 GetInnerRadius()
const
102 return m_InnerRadius;
110 SetThickness(
double t)
124 SetSpacing(SpacingType & s)
150 this->SetNormalize(
true);
155 this->SetNormalize(
false);
162 SetBrightCenter(
bool b)
167 GetBrightCenter()
const
169 return m_BrightCenter;
174 this->SetBrightCenter(
true);
179 this->SetBrightCenter(
false);
188 SetInteriorValue(TPixel v)
193 GetInteriorValue()
const
195 return m_InteriorValue;
198 SetAnnulusValue(TPixel v)
203 GetAnnulusValue()
const
205 return m_AnnulusValue;
208 SetExteriorValue(TPixel v)
213 GetExteriorValue()
const
215 return m_ExteriorValue;
221 PrintSelf(std::ostream & os, Indent i)
const override
223 os << i <<
"AnnulusOperator { this=" <<
this <<
", m_InnerRadius = " << m_InnerRadius
224 <<
", m_Thickness = " << m_Thickness <<
", m_Spacing = " << m_Spacing <<
", m_Normalize = " << m_Normalize
225 <<
", m_BrightCenter = " << m_BrightCenter <<
", m_InteriorValue = " << m_InteriorValue
226 <<
", m_ExteriorValue = " << m_ExteriorValue <<
"}" << std::endl;
227 Superclass::PrintSelf(os, i.GetNextIndent());
234 using CoefficientVector =
typename Superclass::CoefficientVector;
235 using PixelType =
typename Superclass::PixelType;
239 GenerateCoefficients()
override;
243 Fill(
const CoefficientVector & c)
override;
246 double m_InnerRadius{ 1.0 };
247 double m_Thickness{ 1.0 };
248 bool m_Normalize{
false };
249 bool m_BrightCenter{
false };
253 SpacingType m_Spacing{ 1.0 };
257 #ifndef ITK_MANUAL_INSTANTIATION
258 # include "itkAnnulusOperator.hxx"