18 #ifndef itkWienerDeconvolutionImageFilter_h
19 #define itkWienerDeconvolutionImageFilter_h
74 template<
typename TInputImage,
typename TKernelImage = TInputImage,
typename TOutputImage = TInputImage,
typename TInternalPrecision=
double >
95 TInputImage::ImageDimension);
123 itkSetMacro(NoiseVariance,
double);
124 itkGetConstMacro(NoiseVariance,
double);
134 virtual
void PrintSelf( std::ostream & os,
Indent indent ) const ITK_OVERRIDE;
138 void operator=(const
Self &) ITK_DELETE_FUNCTION;
145 template<
typename TPixel >
158 return !(*
this != other);
160 inline TPixel
operator()(
const TPixel & I,
const TPixel & H)
const
162 TPixel Pn = m_NoisePowerSpectralDensityConstant;
167 TPixel Pf = std::norm( I );
169 TPixel denominator = std::norm( H ) + ( Pn / (Pf - Pn) );
173 value = I * ( std::conj( H ) / denominator );
183 m_NoisePowerSpectralDensityConstant = constant;
187 return m_NoisePowerSpectralDensityConstant;
211 #ifndef ITK_MANUAL_INSTANTIATION
212 #include "itkWienerDeconvolutionImageFilter.hxx"
double m_KernelZeroMagnitudeThreshold
Superclass::InputIndexType InputIndexType
TPixel operator()(const TPixel &I, const TPixel &H) const
Superclass::InputRegionType InputRegionType
static const unsigned int ImageDimension
~WienerDeconvolutionImageFilter()
Superclass::InternalComplexImageType InternalComplexImageType
Superclass::KernelIndexType KernelIndexType
Superclass::InputRegionType InputRegionType
Superclass::SizeValueType SizeValueType
Superclass::OutputIndexType OutputIndexType
double GetNoisePowerSpectralDensityConstant() const
The Wiener deconvolution image filter is designed to restore an image convolved with a blurring kerne...
Superclass::InputPixelType InputPixelType
~WienerDeconvolutionFunctor()
void GenerateData() override
WienerDeconvolutionImageFilter()
Base class for all process objects that output image data.
double m_NoisePowerSpectralDensityConstant
Superclass::OutputPixelType OutputPixelType
TInputImage InputImageType
Superclass::OutputRegionType OutputRegionType
Superclass::InternalImageType InternalImageType
SmartPointer< const Self > ConstPointer
WienerDeconvolutionFunctor()
Superclass::OutputIndexType OutputIndexType
WienerDeconvolutionImageFilter Self
Superclass::InputSizeType InputSizeType
Superclass::InternalComplexType InternalComplexType
Superclass::InputIndexType InputIndexType
void SetNoisePowerSpectralDensityConstant(double constant)
Superclass::KernelRegionType KernelRegionType
Superclass::InternalImagePointerType InternalImagePointerType
bool operator!=(const WienerDeconvolutionFunctor &) const
Superclass::OutputRegionType OutputRegionType
bool operator==(const WienerDeconvolutionFunctor &other) const
Superclass::KernelSizeType KernelSizeType
Superclass::OutputPixelType OutputPixelType
SmartPointer< Self > Pointer
Superclass::KernelPixelType KernelPixelType
Superclass::InternalImageType InternalImageType
InverseDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision > Superclass
double GetKernelZeroMagnitudeThreshold() const
Superclass::InternalComplexImagePointerType InternalComplexImagePointerType
Superclass::InputPixelType InputPixelType
Superclass::KernelIndexType KernelIndexType
Superclass::OutputSizeType OutputSizeType
Control indentation during Print() invocation.
Superclass::KernelSizeType KernelSizeType
Superclass::InternalImagePointerType InternalImagePointerType
virtual void PrintSelf(std::ostream &os, Indent indent) const override
double m_KernelZeroMagnitudeThreshold
Superclass::InputSizeType InputSizeType
TKernelImage KernelImageType
Superclass::OutputSizeType OutputSizeType
The direct linear inverse deconvolution filter.
TOutputImage OutputImageType
Superclass::KernelPixelType KernelPixelType
Superclass::InternalComplexType InternalComplexType
void SetKernelZeroMagnitudeThreshold(double mu)
Superclass::InternalComplexImagePointerType InternalComplexImagePointerType
Superclass::KernelRegionType KernelRegionType
Superclass::InternalComplexImageType InternalComplexImageType
Superclass::SizeValueType SizeValueType