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;
128 template< typename TPixel >
135 bool operator!=(
const ParametricBlindLeastSquaresDeconvolutionDifference &)
const
140 bool operator==(
const ParametricBlindLeastSquaresDeconvolutionDifference & other)
const
142 return !( *
this != other );
146 const TPixel & kernelEstimateFT,
147 const TPixel & inputFT)
149 return estimateFT * kernelEstimateFT - inputFT;
153 template<
typename TPixel >
167 return !( *
this != other );
171 const TPixel & differenceFT,
172 const TPixel & kernelFT)
176 return estimateFT - m_Alpha * ( differenceFT * std::conj( kernelFT ) );
230 #ifndef ITK_MANUAL_INSTANTIATION
231 #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
bool operator==(const ParametricBlindLeastSquaresDeconvolutionDifference &other) const
void SetAlpha(double alpha)
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
~ParametricBlindLeastSquaresDeconvolutionDifference()
~ParametricBlindLeastSquaresDeconvolutionImageUpdate()
TPixel operator()(const TPixel &estimateFT, const TPixel &differenceFT, const TPixel &kernelFT)
Superclass::InternalComplexImageType InternalComplexImageType
TKernelSource KernelSourceType
bool operator!=(const ParametricBlindLeastSquaresDeconvolutionDifference &) const
DifferenceFilterType::Pointer m_DifferenceFilter
Facilitates progress reporting for filters that wrap around multiple other filters.
TOutputImage OutputImageType
TInputImage InputImageType
SmartPointer< const Self > ConstPointer
ParametricBlindLeastSquaresDeconvolutionDifference< InternalComplexType > DifferenceFunctorType
Control indentation during Print() invocation.
Abstract base class for filters that implement iterative deconvolution algorithms.
KernelSourcePointer m_KernelSource
ParametricBlindLeastSquaresDeconvolutionDifference()
Superclass::InternalComplexImagePointerType InternalComplexImagePointerType
TPixel operator()(const TPixel &estimateFT, const TPixel &kernelEstimateFT, const TPixel &inputFT)
ParametricBlindLeastSquaresDeconvolutionImageUpdate()
Superclass::InternalImagePointerType InternalImagePointerType