template<typename TInputImage, typename TKernelSource, typename TOutputImage = TInputImage>
class itk::ParametricBlindLeastSquaresDeconvolutionImageFilter< TInputImage, TKernelSource, TOutputImage >
Least-squares blind deconvolution filter that also estimates the parameters of a user-supplied parametric point-spread function.
This filter takes a parametric kernel image source instead of a static kernel image. During the deconvolution iterations, a new estimate of the restored image is produced, along with a new estimate of the kernel parameters. The parameters are available through the kernel image sources GetParameters() method after the filter has executed.
Both the image estimate and the kernel parameter estimate are produced through gradient descent on a sum-of-squared differences objective function, making this method suitable for zero-mean Gaussian white noise.
This filter produces output in two forms: a deconvolved image and the parameters of the input kernel image source.
- Warning
- The method SetKernelImage(), inherited from the superclass of this filter, is publicly available. However, this algorithm does not use the static kernel image set through this method. Instead, it uses the output of the parametric kernel source you specify.
- Author
- Cory Quammen, The University of North Carolina at Chapel Hill
Definition at line 58 of file itkParametricBlindLeastSquaresDeconvolutionImageFilter.h.
|
using | ConstPointer = SmartPointer< const Self > |
|
using | InputImageType = TInputImage |
|
using | InternalComplexImagePointerType = typename Superclass::InternalComplexImagePointerType |
|
using | InternalComplexImageType = typename Superclass::InternalComplexImageType |
|
using | InternalComplexType = typename Superclass::InternalComplexType |
|
using | InternalImagePointerType = typename Superclass::InternalImagePointerType |
|
using | InternalImageType = typename Superclass::InternalImageType |
|
using | KernelSourcePointer = typename KernelSourceType::Pointer |
|
using | KernelSourceType = TKernelSource |
|
using | OutputImageType = TOutputImage |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = ParametricBlindLeastSquaresDeconvolutionImageFilter |
|
using | Superclass = IterativeDeconvolutionImageFilter< TInputImage, typename TKernelSource::OutputImageType, TOutputImage > |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | InputImageType = TInputImage |
|
using | InternalComplexImagePointerType = typename Superclass::InternalComplexImagePointerType |
|
using | InternalComplexImageType = typename Superclass::InternalComplexImageType |
|
using | InternalComplexType = typename Superclass::InternalComplexType |
|
using | InternalImagePointerType = typename Superclass::InternalImagePointerType |
|
using | InternalImageType = typename Superclass::InternalImageType |
|
using | KernelImageType = TKernelSource::OutputImageType |
|
using | OutputImageType = TOutputImage |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = IterativeDeconvolutionImageFilter |
|
using | Superclass = FFTConvolutionImageFilter< TInputImage, TKernelSource::OutputImageType, TOutputImage, double > |
|
using | BoundaryConditionPointerType = typename Superclass::BoundaryConditionPointerType |
|
using | BoundaryConditionType = typename Superclass::BoundaryConditionType |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | InputImageType = TInputImage |
|
using | InputIndexType = typename InputImageType::IndexType |
|
using | InputPixelType = typename InputImageType::PixelType |
|
using | InputRegionType = typename InputImageType::RegionType |
|
using | InputSizeType = typename InputImageType::SizeType |
|
using | InternalComplexImagePointerType = typename InternalComplexImageType::Pointer |
|
using | InternalComplexImageType = Image< InternalComplexType, TInputImage::ImageDimension > |
|
using | InternalComplexType = std::complex< double > |
|
using | InternalImagePointerType = typename InternalImageType::Pointer |
|
using | InternalImageType = Image< double, TInputImage::ImageDimension > |
|
using | KernelImageType = TKernelSource::OutputImageType |
|
using | KernelIndexType = typename KernelImageType::IndexType |
|
using | KernelPixelType = typename KernelImageType::PixelType |
|
using | KernelRegionType = typename KernelImageType::RegionType |
|
using | KernelSizeType = typename KernelImageType::SizeType |
|
using | OutputImageType = TOutputImage |
|
using | OutputIndexType = typename OutputImageType::IndexType |
|
using | OutputPixelType = typename OutputImageType::PixelType |
|
using | OutputRegionType = typename OutputImageType::RegionType |
|
using | OutputSizeType = typename OutputImageType::SizeType |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = FFTConvolutionImageFilter |
|
using | SizeValueType = typename InputSizeType::SizeValueType |
|
using | Superclass = ConvolutionImageFilterBase< TInputImage, TKernelSource::OutputImageType, TOutputImage > |
|
using | BoundaryConditionPointerType = BoundaryConditionType * |
|
using | BoundaryConditionType = ImageBoundaryCondition< TInputImage > |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | DefaultBoundaryConditionType = ZeroFluxNeumannBoundaryCondition< TInputImage > |
|
using | InputImageType = TInputImage |
|
using | InputIndexType = typename InputImageType::IndexType |
|
using | InputPixelType = typename InputImageType::PixelType |
|
using | InputRegionType = typename InputImageType::RegionType |
|
using | InputSizeType = typename InputImageType::SizeType |
|
using | KernelImageType = TKernelSource::OutputImageType |
|
using | KernelIndexType = typename KernelImageType::IndexType |
|
using | KernelPixelType = typename KernelImageType::PixelType |
|
using | KernelRegionType = typename KernelImageType::RegionType |
|
using | KernelSizeType = typename KernelImageType::SizeType |
|
using | OutputImageType = TOutputImage |
|
using | OutputIndexType = typename OutputImageType::IndexType |
|
using | OutputPixelType = typename OutputImageType::PixelType |
|
enum | OutputRegionModeType |
|
using | OutputRegionType = typename OutputImageType::RegionType |
|
using | OutputSizeType = typename OutputImageType::SizeType |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = ConvolutionImageFilterBase |
|
using | SizeValueType = typename InputSizeType::SizeValueType |
|
using | Superclass = ImageToImageFilter< TInputImage, TOutputImage > |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | InputImageConstPointer = typename InputImageType::ConstPointer |
|
using | InputImagePixelType = typename InputImageType::PixelType |
|
using | InputImagePointer = typename InputImageType::Pointer |
|
using | InputImageRegionType = typename InputImageType::RegionType |
|
using | InputImageType = TInputImage |
|
using | OutputImagePixelType = typename Superclass::OutputImagePixelType |
|
using | OutputImageRegionType = typename Superclass::OutputImageRegionType |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = ImageToImageFilter |
|
using | Superclass = ImageSource< TOutputImage > |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | DataObjectIdentifierType = Superclass::DataObjectIdentifierType |
|
using | DataObjectPointer = DataObject::Pointer |
|
using | DataObjectPointerArraySizeType = Superclass::DataObjectPointerArraySizeType |
|
using | OutputImagePixelType = typename OutputImageType::PixelType |
|
using | OutputImagePointer = typename OutputImageType::Pointer |
|
using | OutputImageRegionType = typename OutputImageType::RegionType |
|
using | OutputImageType = TOutputImage |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = ImageSource |
|
using | Superclass = ProcessObject |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | DataObjectIdentifierType = DataObject::DataObjectIdentifierType |
|
using | DataObjectPointer = DataObject::Pointer |
|
using | DataObjectPointerArray = std::vector< DataObjectPointer > |
|
using | DataObjectPointerArraySizeType = DataObjectPointerArray::size_type |
|
using | MultiThreaderType = MultiThreaderBase |
|
using | NameArray = std::vector< DataObjectIdentifierType > |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = ProcessObject |
|
using | Superclass = Object |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = Object |
|
using | Superclass = LightObject |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = LightObject |
|
|
void | Finish (ProgressAccumulator *progress, float progressWeight) override |
|
void | Initialize (ProgressAccumulator *progress, float progressWeight, float iterationProgressWeight) override |
|
void | Iteration (ProgressAccumulator *progress, float iterationProgressWeight) override |
|
| ParametricBlindLeastSquaresDeconvolutionImageFilter () |
|
void | PrintSelf (std::ostream &os, Indent indent) const override |
|
| ~ParametricBlindLeastSquaresDeconvolutionImageFilter () override=default |
|
void | GenerateData () override |
|
void | GenerateInputRequestedRegion () override |
|
| IterativeDeconvolutionImageFilter () |
|
void | PrintSelf (std::ostream &os, Indent indent) const override |
|
| ~IterativeDeconvolutionImageFilter () override |
|
void | CropOutput (InternalImageType *paddedOutput, ProgressAccumulator *progress, float progressWeight) |
|
| FFTConvolutionImageFilter () |
|
InputSizeType | GetPadLowerBound () const |
|
InputSizeType | GetPadSize () const |
|
bool | GetXDimensionIsOdd () const |
|
void | PadInput (const InputImageType *input, InternalImagePointerType &paddedInput, ProgressAccumulator *progress, float progressWeight) |
|
void | PrepareInput (const InputImageType *input, InternalComplexImagePointerType &preparedInput, ProgressAccumulator *progress, float progressWeight) |
|
void | PrepareInputs (const InputImageType *input, const KernelImageType *kernel, InternalComplexImagePointerType &preparedInput, InternalComplexImagePointerType &preparedKernel, ProgressAccumulator *progress, float progressWeight) |
|
void | PrepareKernel (const KernelImageType *kernel, InternalComplexImagePointerType &preparedKernel, ProgressAccumulator *progress, float progressWeight) |
|
void | ProduceOutput (InternalComplexImageType *paddedOutput, ProgressAccumulator *progress, float progressWeight) |
|
void | TransformPaddedInput (const InternalImageType *paddedInput, InternalComplexImagePointerType &transformedInput, ProgressAccumulator *progress, float progressWeight) |
|
| ~FFTConvolutionImageFilter () override=default |
|
| ConvolutionImageFilterBase () |
|
void | GenerateOutputInformation () override |
|
OutputRegionType | GetValidRegion () const |
|
void | VerifyInputInformation () ITKv5_CONST override |
|
| ~ConvolutionImageFilterBase () override=default |
|
virtual void | CallCopyInputRegionToOutputRegion (OutputImageRegionType &destRegion, const InputImageRegionType &srcRegion) |
|
virtual void | CallCopyOutputRegionToInputRegion (InputImageRegionType &destRegion, const OutputImageRegionType &srcRegion) |
|
| ImageToImageFilter () |
|
| ~ImageToImageFilter () override |
|
void | PushBackInput (const DataObject *input) override |
|
void | PushFrontInput (const DataObject *input) override |
|
virtual void | AfterThreadedGenerateData () |
|
virtual void | AllocateOutputs () |
|
virtual void | BeforeThreadedGenerateData () |
|
void | ClassicMultiThread (ThreadFunctionType callbackFunction) |
|
virtual const
ImageRegionSplitterBase * | GetImageRegionSplitter () const |
|
| ImageSource () |
|
virtual unsigned int | SplitRequestedRegion (unsigned int i, unsigned int pieces, OutputImageRegionType &splitRegion) |
|
| ~ImageSource () override=default |
|
virtual void | ThreadedGenerateData (const OutputImageRegionType &outputRegionForThread, ThreadIdType threadId) |
|
virtual void | DynamicThreadedGenerateData (const OutputImageRegionType &outputRegionForThread) |
|
virtual bool | GetDynamicMultiThreading () const |
|
virtual void | SetDynamicMultiThreading (bool _arg) |
|
virtual void | DynamicMultiThreadingOn () |
|
virtual void | DynamicMultiThreadingOff () |
|
virtual void | AddInput (DataObject *input) |
|
void | AddOptionalInputName (const DataObjectIdentifierType &) |
|
void | AddOptionalInputName (const DataObjectIdentifierType &, DataObjectPointerArraySizeType idx) |
|
virtual void | AddOutput (DataObject *output) |
|
bool | AddRequiredInputName (const DataObjectIdentifierType &) |
|
bool | AddRequiredInputName (const DataObjectIdentifierType &, DataObjectPointerArraySizeType idx) |
|
virtual void | CacheInputReleaseDataFlags () |
|
virtual void | GenerateOutputRequestedRegion (DataObject *output) |
|
DataObject * | GetInput (const DataObjectIdentifierType &key) |
|
const DataObject * | GetInput (const DataObjectIdentifierType &key) const |
|
virtual const
DataObjectPointerArraySizeType & | GetNumberOfRequiredInputs () const |
|
virtual const
DataObjectPointerArraySizeType & | GetNumberOfRequiredOutputs () const |
|
bool | IsIndexedInputName (const DataObjectIdentifierType &) const |
|
bool | IsIndexedOutputName (const DataObjectIdentifierType &) const |
|
bool | IsRequiredInputName (const DataObjectIdentifierType &) const |
|
DataObjectPointerArraySizeType | MakeIndexFromInputName (const DataObjectIdentifierType &name) const |
|
DataObjectPointerArraySizeType | MakeIndexFromOutputName (const DataObjectIdentifierType &name) const |
|
DataObjectIdentifierType | MakeNameFromInputIndex (DataObjectPointerArraySizeType idx) const |
|
DataObjectIdentifierType | MakeNameFromOutputIndex (DataObjectPointerArraySizeType idx) const |
|
| ProcessObject () |
|
virtual void | PropagateResetPipeline () |
|
virtual void | ReleaseInputs () |
|
virtual void | RemoveInput (const DataObjectIdentifierType &key) |
|
virtual void | RemoveInput (DataObjectPointerArraySizeType) |
|
virtual void | RemoveOutput (const DataObjectIdentifierType &key) |
|
virtual void | RemoveOutput (DataObjectPointerArraySizeType idx) |
|
bool | RemoveRequiredInputName (const DataObjectIdentifierType &) |
|
virtual void | RestoreInputReleaseDataFlags () |
|
virtual void | SetInput (const DataObjectIdentifierType &key, DataObject *input) |
|
virtual void | SetNthInput (DataObjectPointerArraySizeType num, DataObject *input) |
|
virtual void | SetNthOutput (DataObjectPointerArraySizeType num, DataObject *output) |
|
void | SetNumberOfIndexedInputs (DataObjectPointerArraySizeType num) |
|
void | SetNumberOfIndexedOutputs (DataObjectPointerArraySizeType num) |
|
virtual void | SetNumberOfRequiredInputs (DataObjectPointerArraySizeType) |
|
virtual void | SetNumberOfRequiredOutputs (DataObjectPointerArraySizeType _arg) |
|
virtual void | SetOutput (const DataObjectIdentifierType &key, DataObject *output) |
|
virtual void | SetPrimaryInput (DataObject *input) |
|
virtual void | SetPrimaryOutput (DataObject *output) |
|
void | SetRequiredInputNames (const NameArray &) |
|
virtual void | VerifyPreconditions () ITKv5_CONST |
|
| ~ProcessObject () override |
|
DataObject * | GetInput (DataObjectPointerArraySizeType idx) |
|
const DataObject * | GetInput (DataObjectPointerArraySizeType idx) const |
|
DataObject * | GetPrimaryInput () |
|
const DataObject * | GetPrimaryInput () const |
|
virtual void | SetPrimaryInputName (const DataObjectIdentifierType &key) |
|
virtual const char * | GetPrimaryInputName () const |
|
DataObject * | GetOutput (const DataObjectIdentifierType &key) |
|
const DataObject * | GetOutput (const DataObjectIdentifierType &key) const |
|
virtual void | SetPrimaryOutputName (const DataObjectIdentifierType &key) |
|
virtual const char * | GetPrimaryOutputName () const |
|
DataObject * | GetOutput (DataObjectPointerArraySizeType idx) |
|
const DataObject * | GetOutput (DataObjectPointerArraySizeType idx) const |
|
DataObject * | GetPrimaryOutput () |
|
const DataObject * | GetPrimaryOutput () const |
|
| Object () |
|
bool | PrintObservers (std::ostream &os, Indent indent) const |
|
virtual void | SetTimeStamp (const TimeStamp &time) |
|
| ~Object () override |
|
virtual LightObject::Pointer | InternalClone () const |
|
| LightObject () |
|
virtual void | PrintHeader (std::ostream &os, Indent indent) const |
|
virtual void | PrintTrailer (std::ostream &os, Indent indent) const |
|
virtual | ~LightObject () |
|