18 #ifndef itkBilateralImageFilter_h
19 #define itkBilateralImageFilter_h
74 template <
typename TInputImage,
typename TOutputImage>
97 using typename Superclass::OutputImageRegionType;
109 static constexpr
unsigned int ImageDimension = TOutputImage::ImageDimension;
133 itkGetConstMacro(DomainSigma,
const ArrayType);
134 itkSetMacro(DomainMu,
double);
135 itkGetConstReferenceMacro(DomainMu,
double);
136 itkSetMacro(RangeSigma,
double);
137 itkGetConstMacro(RangeSigma,
double);
138 itkGetConstMacro(FilterDimensionality,
unsigned int);
139 itkSetMacro(FilterDimensionality,
unsigned int);
147 m_DomainSigma.Fill(v);
155 itkBooleanMacro(AutomaticKernelSize);
156 itkGetConstMacro(AutomaticKernelSize,
bool);
157 itkSetMacro(AutomaticKernelSize,
bool);
166 itkGetConstReferenceMacro(Radius,
SizeType);
171 itkSetMacro(NumberOfRangeGaussianSamples,
unsigned long);
172 itkGetConstMacro(NumberOfRangeGaussianSamples,
unsigned long);
175 #ifdef ITK_USE_CONCEPT_CHECKING
190 PrintSelf(std::ostream & os,
Indent indent)
const override;
194 BeforeThreadedGenerateData()
override;
199 DynamicThreadedGenerateData(
const OutputImageRegionType & outputRegionForThread)
override;
208 GenerateInputRequestedRegion()
override;
213 double m_RangeSigma{};
225 unsigned int m_FilterDimensionality{};
230 bool m_AutomaticKernelSize{};
233 unsigned long m_NumberOfRangeGaussianSamples{};
234 double m_DynamicRange{};
235 double m_DynamicRangeUsed{};
236 std::vector<double> m_RangeGaussianTable{};
240 #ifndef ITK_MANUAL_INSTANTIATION
241 # include "itkBilateralImageFilter.hxx"