18 #ifndef itkParametricBlindLeastSquaresDeconvolutionImageFilter_h
19 #define itkParametricBlindLeastSquaresDeconvolutionImageFilter_h
58 template<
typename TInputImage,
typename TKernelSource,
typename TOutputImage=TInputImage >
66 typename TKernelSource::OutputImageType,
100 itkSetMacro(Alpha,
double);
101 itkGetMacro(Alpha,
double);
106 itkSetMacro(Beta,
double);
107 itkGetMacro(Beta,
double);
115 float progressWeight,
116 float iterationProgressWeight) ITK_OVERRIDE;
119 float iterationProgressWeight) ITK_OVERRIDE;
123 virtual void PrintSelf(std::ostream & os,
Indent indent)
const ITK_OVERRIDE;
127 void operator=(const
Self &) ITK_DELETE_FUNCTION;
129 template< typename TPixel >
136 bool operator!=(
const ParametricBlindLeastSquaresDeconvolutionDifference &)
const
141 bool operator==(
const ParametricBlindLeastSquaresDeconvolutionDifference & other)
const
143 return !( *
this != other );
147 const TPixel & kernelEstimateFT,
148 const TPixel & inputFT)
150 return estimateFT * kernelEstimateFT - inputFT;
154 template<
typename TPixel >
168 return !( *
this != other );
172 const TPixel & differenceFT,
173 const TPixel & kernelFT)
177 return estimateFT -
m_Alpha * ( differenceFT * std::conj( kernelFT ) );
231 #ifndef ITK_MANUAL_INSTANTIATION
232 #include "itkParametricBlindLeastSquaresDeconvolutionImageFilter.hxx"
TernaryFunctorImageFilter< InternalComplexImageType, InternalComplexImageType, InternalComplexImageType, InternalComplexImageType, DifferenceFunctorType > DifferenceFilterType
Superclass::InternalComplexType InternalComplexType
InternalComplexImagePointerType m_TransformedCurrentEstimate
bool operator!=(const ParametricBlindLeastSquaresDeconvolutionImageUpdate &) const
Superclass::InternalImageType InternalImageType
ImageUpdateFilterType::Pointer m_ImageUpdateFilter
ParametricBlindLeastSquaresDeconvolutionImageUpdate< InternalComplexType > ImageUpdateFunctorType
IterativeDeconvolutionImageFilter< TInputImage, typename TKernelSource::OutputImageType, TOutputImage > Superclass
KernelSourceType::Pointer KernelSourcePointer
ParametricBlindLeastSquaresDeconvolutionImageFilter Self
virtual void PrintSelf(std::ostream &os, Indent indent) const override
bool operator==(const ParametricBlindLeastSquaresDeconvolutionDifference &other) const
void SetAlpha(double alpha)
ParametricBlindLeastSquaresDeconvolutionImageFilter()
Implements pixel-wise generic operation of three images.
TernaryFunctorImageFilter< InternalComplexImageType, InternalComplexImageType, InternalComplexImageType, InternalComplexImageType, ImageUpdateFunctorType > ImageUpdateFilterType
Base class for all process objects that output image data.
SmartPointer< Self > Pointer
Least-squares blind deconvolution filter that also estimates the parameters of a user-supplied parame...
bool operator==(const ParametricBlindLeastSquaresDeconvolutionImageUpdate &other) const
InternalComplexImagePointerType m_TransformedInput
virtual void Initialize(ProgressAccumulator *progress, float progressWeight, float iterationProgressWeight) override
~ParametricBlindLeastSquaresDeconvolutionDifference()
~ParametricBlindLeastSquaresDeconvolutionImageUpdate()
TPixel operator()(const TPixel &estimateFT, const TPixel &differenceFT, const TPixel &kernelFT)
virtual void Iteration(ProgressAccumulator *progress, float iterationProgressWeight) override
Superclass::InternalComplexImageType InternalComplexImageType
TKernelSource KernelSourceType
bool operator!=(const ParametricBlindLeastSquaresDeconvolutionDifference &) const
virtual ~ParametricBlindLeastSquaresDeconvolutionImageFilter()
Superclass::InternalComplexImageType InternalComplexImageType
DifferenceFilterType::Pointer m_DifferenceFilter
Superclass::InternalImagePointerType InternalImagePointerType
Facilitates progress reporting for filters that wrap around multiple other filters.
Superclass::InternalComplexType InternalComplexType
TOutputImage OutputImageType
TInputImage InputImageType
SmartPointer< const Self > ConstPointer
Superclass::InternalComplexImagePointerType InternalComplexImagePointerType
ParametricBlindLeastSquaresDeconvolutionDifference< InternalComplexType > DifferenceFunctorType
Control indentation during Print() invocation.
Abstract base class for filters that implement iterative deconvolution algorithms.
KernelSourcePointer m_KernelSource
ParametricBlindLeastSquaresDeconvolutionDifference()
void SetKernelSource(KernelSourceType *kernelSource)
Superclass::InternalComplexImagePointerType InternalComplexImagePointerType
Superclass::InternalImageType InternalImageType
TPixel operator()(const TPixel &estimateFT, const TPixel &kernelEstimateFT, const TPixel &inputFT)
ParametricBlindLeastSquaresDeconvolutionImageUpdate()
Superclass::InternalImagePointerType InternalImagePointerType
virtual void Finish(ProgressAccumulator *progress, float progressWeight) override