18#ifndef itkInverseDeconvolutionImageFilter_h
19#define itkInverseDeconvolutionImageFilter_h
55template <
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);
123 double m_KernelZeroMagnitudeThreshold{};
128template <
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"
Convolve a given image with an arbitrary image kernel using multiplication in the Fourier domain.
TOutput operator()(const TInput1 &I, const TInput2 &H) const
bool operator==(const InverseDeconvolutionFunctor &) const
double m_KernelZeroMagnitudeThreshold
InverseDeconvolutionFunctor()
~InverseDeconvolutionFunctor()=default
double GetKernelZeroMagnitudeThreshold() const
void SetKernelZeroMagnitudeThreshold(double mu)
ITK_UNEQUAL_OPERATOR_MEMBER_FUNCTION(InverseDeconvolutionFunctor)
Control indentation during Print() invocation.
The direct linear inverse deconvolution filter.
TInputImage InputImageType
~InverseDeconvolutionImageFilter() override=default
InverseDeconvolutionImageFilter()
void GenerateData() override
TKernelImage KernelImageType
TOutputImage OutputImageType
void PrintSelf(std::ostream &os, Indent indent) const override
Light weight base class for most itk classes.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
unsigned long SizeValueType