18#ifndef itkWienerDeconvolutionImageFilter_h
19#define itkWienerDeconvolutionImageFilter_h
76template <
typename TInputImage,
77 typename TKernelImage = TInputImage,
78 typename TOutputImage = TInputImage,
79 typename TInternalPrecision =
double>
127 itkSetMacro(NoiseVariance,
double);
128 itkGetConstMacro(NoiseVariance,
double);
148template <
typename TPixel>
175 TPixel Pf = std::norm(I);
177 TPixel denominator = std::norm(H) + (Pn / (Pf - Pn));
181 value = I * (std::conj(H) / denominator);
223#ifndef ITK_MANUAL_INSTANTIATION
224# include "itkWienerDeconvolutionImageFilter.hxx"
typename KernelImageType::IndexType KernelIndexType
typename KernelImageType::PixelType KernelPixelType
typename KernelImageType::SizeType KernelSizeType
typename OutputImageType::PixelType OutputPixelType
typename OutputImageType::RegionType OutputRegionType
typename OutputImageType::IndexType OutputIndexType
typename KernelImageType::RegionType KernelRegionType
typename InputSizeType::SizeValueType SizeValueType
typename InputImageType::PixelType InputPixelType
typename OutputImageType::SizeType OutputSizeType
typename InputImageType::IndexType InputIndexType
typename InputImageType::RegionType InputRegionType
typename InputImageType::SizeType InputSizeType
Image< TInternalPrecision, TInputImage::ImageDimension > InternalImageType
std::complex< TInternalPrecision > InternalComplexType
Image< InternalComplexType, TInputImage::ImageDimension > InternalComplexImageType
typename InternalComplexImageType::Pointer InternalComplexImagePointerType
typename InternalImageType::Pointer InternalImagePointerType
WienerDeconvolutionFunctor()=default
double GetKernelZeroMagnitudeThreshold() const
double m_NoisePowerSpectralDensityConstant
double GetNoisePowerSpectralDensityConstant() const
bool operator==(const WienerDeconvolutionFunctor &) const
void SetKernelZeroMagnitudeThreshold(double mu)
WienerDeconvolutionFunctor(const WienerDeconvolutionFunctor &f)
~WienerDeconvolutionFunctor()=default
TPixel operator()(const TPixel &I, const TPixel &H) const
double m_KernelZeroMagnitudeThreshold
void SetNoisePowerSpectralDensityConstant(double constant)
ITK_UNEQUAL_OPERATOR_MEMBER_FUNCTION(WienerDeconvolutionFunctor)
Control indentation during Print() invocation.
InverseDeconvolutionImageFilter()
Implements transparent reference counting.
SmartPointer< const Self > ConstPointer
void GenerateData() override
~WienerDeconvolutionImageFilter() override=default
SmartPointer< Self > Pointer
void PrintSelf(std::ostream &os, Indent indent) const override
WienerDeconvolutionImageFilter()
TKernelImage KernelImageType
TInputImage InputImageType
InverseDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision > Superclass
static constexpr unsigned int ImageDimension
WienerDeconvolutionImageFilter Self
TOutputImage OutputImageType
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....