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 59 of file itkParametricBlindLeastSquaresDeconvolutionImageFilter.h.
|
typedef SmartPointer< const Self > | ConstPointer |
|
typedef TInputImage | InputImageType |
|
typedef Superclass::InternalComplexImagePointerType | InternalComplexImagePointerType |
|
typedef Superclass::InternalComplexImageType | InternalComplexImageType |
|
typedef Superclass::InternalComplexType | InternalComplexType |
|
typedef Superclass::InternalImagePointerType | InternalImagePointerType |
|
typedef Superclass::InternalImageType | InternalImageType |
|
typedef KernelSourceType::Pointer | KernelSourcePointer |
|
typedef TKernelSource | KernelSourceType |
|
typedef TOutputImage | OutputImageType |
|
typedef SmartPointer< Self > | Pointer |
|
typedef ParametricBlindLeastSquaresDeconvolutionImageFilter | Self |
|
typedef IterativeDeconvolutionImageFilter< TInputImage, typename TKernelSource::OutputImageType, TOutputImage > | Superclass |
|
typedef SmartPointer< const Self > | ConstPointer |
|
typedef TInputImage | InputImageType |
|
typedef Superclass::InternalComplexImagePointerType | InternalComplexImagePointerType |
|
typedef Superclass::InternalComplexImageType | InternalComplexImageType |
|
typedef Superclass::InternalComplexType | InternalComplexType |
|
typedef Superclass::InternalImagePointerType | InternalImagePointerType |
|
typedef Superclass::InternalImageType | InternalImageType |
|
typedef TKernelSource::OutputImageType | KernelImageType |
|
typedef TOutputImage | OutputImageType |
|
typedef SmartPointer< Self > | Pointer |
|
typedef IterativeDeconvolutionImageFilter | Self |
|
typedef FFTConvolutionImageFilter< TInputImage, TKernelSource::OutputImageType, TOutputImage, double > | Superclass |
|
typedef Superclass::BoundaryConditionPointerType | BoundaryConditionPointerType |
|
typedef Superclass::BoundaryConditionType | BoundaryConditionType |
|
typedef SmartPointer< const Self > | ConstPointer |
|
typedef TInputImage | InputImageType |
|
typedef InputImageType::IndexType | InputIndexType |
|
typedef InputImageType::PixelType | InputPixelType |
|
typedef InputImageType::RegionType | InputRegionType |
|
typedef InputImageType::SizeType | InputSizeType |
|
typedef InternalComplexImageType::Pointer | InternalComplexImagePointerType |
|
typedef Image< InternalComplexType, TInputImage::ImageDimension > | InternalComplexImageType |
|
typedef std::complex< double > | InternalComplexType |
|
typedef InternalImageType::Pointer | InternalImagePointerType |
|
typedef Image< double, TInputImage::ImageDimension > | InternalImageType |
|
typedef TKernelSource::OutputImageType | KernelImageType |
|
typedef KernelImageType::IndexType | KernelIndexType |
|
typedef KernelImageType::PixelType | KernelPixelType |
|
typedef KernelImageType::RegionType | KernelRegionType |
|
typedef KernelImageType::SizeType | KernelSizeType |
|
typedef TOutputImage | OutputImageType |
|
typedef OutputImageType::IndexType | OutputIndexType |
|
typedef OutputImageType::PixelType | OutputPixelType |
|
typedef OutputImageType::RegionType | OutputRegionType |
|
typedef OutputImageType::SizeType | OutputSizeType |
|
typedef SmartPointer< Self > | Pointer |
|
typedef FFTConvolutionImageFilter | Self |
|
typedef InputSizeType::SizeValueType | SizeValueType |
|
typedef ConvolutionImageFilterBase< TInputImage, TKernelSource::OutputImageType, TOutputImage > | Superclass |
|
typedef BoundaryConditionType * | BoundaryConditionPointerType |
|
typedef ImageBoundaryCondition< TInputImage > | BoundaryConditionType |
|
typedef SmartPointer< const Self > | ConstPointer |
|
typedef ZeroFluxNeumannBoundaryCondition< TInputImage > | DefaultBoundaryConditionType |
|
typedef TInputImage | InputImageType |
|
typedef InputImageType::IndexType | InputIndexType |
|
typedef InputImageType::PixelType | InputPixelType |
|
typedef InputImageType::RegionType | InputRegionType |
|
typedef InputImageType::SizeType | InputSizeType |
|
typedef TKernelSource::OutputImageType | KernelImageType |
|
typedef KernelImageType::IndexType | KernelIndexType |
|
typedef KernelImageType::PixelType | KernelPixelType |
|
typedef KernelImageType::RegionType | KernelRegionType |
|
typedef KernelImageType::SizeType | KernelSizeType |
|
typedef TOutputImage | OutputImageType |
|
typedef OutputImageType::IndexType | OutputIndexType |
|
typedef OutputImageType::PixelType | OutputPixelType |
|
enum | OutputRegionModeType |
|
typedef OutputImageType::RegionType | OutputRegionType |
|
typedef OutputImageType::SizeType | OutputSizeType |
|
typedef SmartPointer< Self > | Pointer |
|
typedef ConvolutionImageFilterBase | Self |
|
typedef InputSizeType::SizeValueType | SizeValueType |
|
typedef ImageToImageFilter< TInputImage, TOutputImage > | Superclass |
|
typedef SmartPointer< const Self > | ConstPointer |
|
typedef InputImageType::ConstPointer | InputImageConstPointer |
|
typedef InputImageType::PixelType | InputImagePixelType |
|
typedef InputImageType::Pointer | InputImagePointer |
|
typedef InputImageType::RegionType | InputImageRegionType |
|
typedef TInputImage | InputImageType |
|
typedef Superclass::OutputImagePixelType | OutputImagePixelType |
|
typedef Superclass::OutputImageRegionType | OutputImageRegionType |
|
typedef SmartPointer< Self > | Pointer |
|
typedef ImageToImageFilter | Self |
|
typedef ImageSource< TOutputImage > | Superclass |
|
typedef SmartPointer< const Self > | ConstPointer |
|
typedef Superclass::DataObjectIdentifierType | DataObjectIdentifierType |
|
typedef DataObject::Pointer | DataObjectPointer |
|
typedef Superclass::DataObjectPointerArraySizeType | DataObjectPointerArraySizeType |
|
typedef OutputImageType::PixelType | OutputImagePixelType |
|
typedef OutputImageType::Pointer | OutputImagePointer |
|
typedef OutputImageType::RegionType | OutputImageRegionType |
|
typedef TOutputImage | OutputImageType |
|
typedef SmartPointer< Self > | Pointer |
|
typedef ImageSource | Self |
|
typedef ProcessObject | Superclass |
|
typedef SmartPointer< const Self > | ConstPointer |
|
typedef DataObject::DataObjectIdentifierType | DataObjectIdentifierType |
|
typedef DataObject::Pointer | DataObjectPointer |
|
typedef std::vector< DataObjectPointer > | DataObjectPointerArray |
|
typedef DataObjectPointerArray::size_type | DataObjectPointerArraySizeType |
|
typedef std::vector< DataObjectIdentifierType > | NameArray |
|
typedef SmartPointer< Self > | Pointer |
|
typedef ProcessObject | Self |
|
typedef Object | Superclass |
|
typedef SmartPointer< const Self > | ConstPointer |
|
typedef SmartPointer< Self > | Pointer |
|
typedef Object | Self |
|
typedef LightObject | Superclass |
|
typedef SmartPointer< const Self > | ConstPointer |
|
typedef SmartPointer< Self > | Pointer |
|
typedef LightObject | Self |
|
|
virtual void | Finish (ProgressAccumulator *progress, float progressWeight) override |
|
virtual void | Initialize (ProgressAccumulator *progress, float progressWeight, float iterationProgressWeight) override |
|
virtual void | Iteration (ProgressAccumulator *progress, float iterationProgressWeight) override |
|
| ParametricBlindLeastSquaresDeconvolutionImageFilter () |
|
virtual void | PrintSelf (std::ostream &os, Indent indent) const override |
|
virtual | ~ParametricBlindLeastSquaresDeconvolutionImageFilter () |
|
virtual void | GenerateData () override |
|
virtual void | GenerateInputRequestedRegion () override |
|
| IterativeDeconvolutionImageFilter () |
|
virtual | ~IterativeDeconvolutionImageFilter () |
|
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 () |
|
| ConvolutionImageFilterBase () |
|
void | GenerateOutputInformation () override |
|
OutputRegionType | GetValidRegion () const |
|
virtual void | VerifyInputInformation () override |
|
| ~ConvolutionImageFilterBase () |
|
virtual void | CallCopyInputRegionToOutputRegion (OutputImageRegionType &destRegion, const InputImageRegionType &srcRegion) |
|
virtual void | CallCopyOutputRegionToInputRegion (InputImageRegionType &destRegion, const OutputImageRegionType &srcRegion) |
|
| ImageToImageFilter () |
|
| ~ImageToImageFilter () |
|
void | PushBackInput (const DataObject *input) override |
|
void | PushFrontInput (const DataObject *input) override |
|
virtual void | AfterThreadedGenerateData () |
|
virtual void | AllocateOutputs () |
|
virtual void | BeforeThreadedGenerateData () |
|
virtual const ImageRegionSplitterBase * | GetImageRegionSplitter () const |
|
| ImageSource () |
|
virtual unsigned int | SplitRequestedRegion (unsigned int i, unsigned int pieces, OutputImageRegionType &splitRegion) |
|
virtual void | ThreadedGenerateData (const OutputImageRegionType &outputRegionForThread, ThreadIdType threadId) |
|
virtual | ~ImageSource () |
|
virtual void | AddInput (DataObject *input) |
|
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 |
|
| itkLegacyMacro (virtual void RemoveOutput(DataObject *output)) |
|
| itkLegacyMacro (void SetNumberOfOutputs(DataObjectPointerArraySizeType num)) |
|
| itkLegacyMacro (virtual void RemoveInput(DataObject *input)) |
|
| itkLegacyMacro (void SetNumberOfInputs(DataObjectPointerArraySizeType num)) |
|
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 () |
|
| ~ProcessObject () |
|
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 (void) const |
|
DataObject * | GetOutput (const DataObjectIdentifierType &key) |
|
const DataObject * | GetOutput (const DataObjectIdentifierType &key) const |
|
virtual void | SetPrimaryOutputName (const DataObjectIdentifierType &key) |
|
virtual const char * | GetPrimaryOutputName (void) 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) |
|
virtual | ~Object () |
|
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 () |
|