18 #ifndef itkInverseDeconvolutionImageFilter_h
19 #define itkInverseDeconvolutionImageFilter_h
53 template<
typename TInputImage,
typename TKernelImage = TInputImage,
typename TOutputImage = TInputImage,
typename TInternalPrecision=
double >
75 static constexpr
unsigned int ImageDimension = TInputImage::ImageDimension;
104 itkSetMacro(KernelZeroMagnitudeThreshold,
double);
105 itkGetConstMacro(KernelZeroMagnitudeThreshold,
double);
113 void GenerateData()
override;
115 void PrintSelf(std::ostream & os,
Indent indent)
const override;
123 template<
typename TInput1,
typename TInput2,
typename TOutput >
136 return !(*
this != other);
138 inline TOutput
operator()(
const TInput1 & I,
const TInput2 & H)
const
140 const double absH = std::abs( H );
142 if ( absH >= m_KernelZeroMagnitudeThreshold )
144 value =
static_cast< TOutput
>( I / H );
153 m_KernelZeroMagnitudeThreshold = mu;
157 return m_KernelZeroMagnitudeThreshold;
168 #ifndef ITK_MANUAL_INSTANTIATION
169 #include "itkInverseDeconvolutionImageFilter.hxx"
typename InternalImageType::Pointer InternalImagePointerType
typename InputImageType::PixelType InputPixelType
typename KernelImageType::SizeType KernelSizeType
typename OutputImageType::IndexType OutputIndexType
Define numeric traits for std::vector.
typename InputSizeType::SizeValueType SizeValueType
typename OutputImageType::PixelType OutputPixelType
unsigned long SizeValueType
TOutput operator()(const TInput1 &I, const TInput2 &H) const
InverseDeconvolutionFunctor()
typename KernelImageType::PixelType KernelPixelType
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
Base class for all process objects that output image data.
typename InputImageType::RegionType InputRegionType
TInputImage InputImageType
Convolve a given image with an arbitrary image kernel using multiplication in the Fourier domain...
bool operator!=(const InverseDeconvolutionFunctor &) const
TKernelImage KernelImageType
void SetKernelZeroMagnitudeThreshold(double mu)
typename InternalComplexImageType::Pointer InternalComplexImagePointerType
std::complex< TInternalPrecision > InternalComplexType
TOutputImage OutputImageType
typename InputImageType::SizeType InputSizeType
double m_KernelZeroMagnitudeThreshold
typename InputImageType::IndexType InputIndexType
bool operator==(const InverseDeconvolutionFunctor &other) const
typename KernelImageType::RegionType KernelRegionType
double GetKernelZeroMagnitudeThreshold() const
typename OutputImageType::RegionType OutputRegionType
Control indentation during Print() invocation.
double m_KernelZeroMagnitudeThreshold
typename OutputImageType::SizeType OutputSizeType
typename KernelImageType::IndexType KernelIndexType
The direct linear inverse deconvolution filter.
Templated n-dimensional image class.