18 #ifndef itkInverseDeconvolutionImageFilter_h
19 #define itkInverseDeconvolutionImageFilter_h
55 template <
typename TInputImage,
56 typename TKernelImage = TInputImage,
57 typename TOutputImage = TInputImage,
58 typename TInternalPrecision =
double>
78 static constexpr
unsigned int ImageDimension = TInputImage::ImageDimension;
83 using typename Superclass::InputPixelType;
84 using typename Superclass::OutputPixelType;
85 using typename Superclass::KernelPixelType;
86 using typename Superclass::InputIndexType;
87 using typename Superclass::OutputIndexType;
88 using typename Superclass::KernelIndexType;
89 using typename Superclass::InputSizeType;
90 using typename Superclass::OutputSizeType;
91 using typename Superclass::KernelSizeType;
93 using typename Superclass::InputRegionType;
94 using typename Superclass::OutputRegionType;
95 using typename Superclass::KernelRegionType;
98 using typename Superclass::InternalImageType;
99 using typename Superclass::InternalImagePointerType;
100 using typename Superclass::InternalComplexType;
101 using typename Superclass::InternalComplexImageType;
102 using typename Superclass::InternalComplexImagePointerType;
107 itkSetMacro(KernelZeroMagnitudeThreshold,
double);
108 itkGetConstMacro(KernelZeroMagnitudeThreshold,
double);
117 GenerateData()
override;
120 PrintSelf(std::ostream & os,
Indent indent)
const override;
123 double m_KernelZeroMagnitudeThreshold{};
128 template <
typename TInput1,
typename TInput2,
typename TOutput>
148 if (absH >= m_KernelZeroMagnitudeThreshold)
150 value = static_cast<TOutput>(I / H);
160 m_KernelZeroMagnitudeThreshold = mu;
165 return m_KernelZeroMagnitudeThreshold;
176 #ifndef ITK_MANUAL_INSTANTIATION
177 # include "itkInverseDeconvolutionImageFilter.hxx"