18 #ifndef itkInverseDeconvolutionImageFilter_h
19 #define itkInverseDeconvolutionImageFilter_h
53 template<
typename TInputImage,
typename TKernelImage = TInputImage,
typename TOutputImage = TInputImage,
typename TInternalPrecision=
double >
74 TInputImage::ImageDimension);
103 itkSetMacro(KernelZeroMagnitudeThreshold,
double);
104 itkGetConstMacro(KernelZeroMagnitudeThreshold,
double);
114 virtual
void PrintSelf(std::ostream & os,
Indent indent) const ITK_OVERRIDE;
118 void operator=(const
Self &) ITK_DELETE_FUNCTION;
125 template<
typename TInput1,
typename TInput2,
typename TOutput >
138 return !(*
this != other);
140 inline TOutput
operator()(
const TInput1 & I,
const TInput2 & H)
const
142 const double absH = std::abs( H );
144 if ( absH >= m_KernelZeroMagnitudeThreshold )
146 value =
static_cast< TOutput
>( I / H );
155 m_KernelZeroMagnitudeThreshold = mu;
170 #ifndef ITK_MANUAL_INSTANTIATION
171 #include "itkInverseDeconvolutionImageFilter.hxx"
TInputImage InputImageType
static const unsigned int ImageDimension
OutputImageType::RegionType OutputRegionType
InputImageType::RegionType InputRegionType
InverseDeconvolutionImageFilter()
Superclass::KernelIndexType KernelIndexType
TOutput operator()(const TInput1 &I, const TInput2 &H) const
Superclass::InputRegionType InputRegionType
Superclass::SizeValueType SizeValueType
InternalComplexImageType::Pointer InternalComplexImagePointerType
InverseDeconvolutionFunctor()
TOutputImage OutputImageType
InputSizeType::SizeValueType SizeValueType
Superclass::OutputIndexType OutputIndexType
SmartPointer< Self > Pointer
OutputImageType::SizeType OutputSizeType
Base class for all process objects that output image data.
Superclass::OutputPixelType OutputPixelType
InternalImageType::Pointer InternalImagePointerType
Superclass::OutputRegionType OutputRegionType
Superclass::InternalImageType InternalImageType
~InverseDeconvolutionFunctor()
Convolve a given image with an arbitrary image kernel using multiplication in the Fourier domain...
bool operator!=(const InverseDeconvolutionFunctor &) const
Superclass::InputIndexType InputIndexType
virtual void GenerateData() override
InputImageType::PixelType InputPixelType
SmartPointer< const Self > ConstPointer
void SetKernelZeroMagnitudeThreshold(double mu)
Image< InternalComplexType, TInputImage::ImageDimension > InternalComplexImageType
KernelImageType::RegionType KernelRegionType
FFTConvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision > Superclass
double m_KernelZeroMagnitudeThreshold
virtual void PrintSelf(std::ostream &os, Indent indent) const override
OutputImageType::PixelType OutputPixelType
Superclass::InternalComplexImagePointerType InternalComplexImagePointerType
Superclass::InputPixelType InputPixelType
bool operator==(const InverseDeconvolutionFunctor &other) const
OutputImageType::IndexType OutputIndexType
InputImageType::SizeType InputSizeType
Superclass::OutputSizeType OutputSizeType
double GetKernelZeroMagnitudeThreshold() const
KernelImageType::IndexType KernelIndexType
Control indentation during Print() invocation.
Superclass::KernelSizeType KernelSizeType
Superclass::InternalImagePointerType InternalImagePointerType
double m_KernelZeroMagnitudeThreshold
KernelImageType::PixelType KernelPixelType
Image< TInternalPrecision, TInputImage::ImageDimension > InternalImageType
Superclass::InputSizeType InputSizeType
~InverseDeconvolutionImageFilter()
The direct linear inverse deconvolution filter.
Superclass::KernelPixelType KernelPixelType
InverseDeconvolutionImageFilter Self
Superclass::InternalComplexType InternalComplexType
std::complex< TInternalPrecision > InternalComplexType
KernelImageType::SizeType KernelSizeType
InputImageType::IndexType InputIndexType
Superclass::KernelRegionType KernelRegionType
TKernelImage KernelImageType
Superclass::InternalComplexImageType InternalComplexImageType