Class LandweberDeconvolutionImageFilter

java.lang.Object
org.itk.simple.ProcessObject
org.itk.simple.ImageFilter
org.itk.simple.LandweberDeconvolutionImageFilter

public class LandweberDeconvolutionImageFilter extends ImageFilter
Deconvolve an image using the Landweber deconvolution algorithm. This filter implements the Landweber deconvolution algorithm as defined in Bertero M and Boccacci P, "Introduction to Inverse Problems in Imaging", 1998. The algorithm assumes that the input image has been formed by a linear shift-invariant system with a known kernel. The Landweber algorithm converges to a solution that minimizes the sum of squared errors $||f \\otimes h - g||$ where $f$ is the estimate of the unblurred image, $\\otimes$ is the convolution operator, $h$ is the blurring kernel, and $g$ is the blurred input image. As such, it is best suited for images that have zero-mean Gaussian white noise. This is the base implementation of the Landweber algorithm. It may produce results with negative values. For a version of this algorithm that enforces a positivity constraint on each intermediate solution, see ProjectedLandweberDeconvolutionImageFilter . This code was adapted from the Insight Journal contribution: "Deconvolution: infrastructure and reference algorithms" by Gaetan Lehmann https://www.insight-journal.org/browse/publication/753 Gaetan Lehmann, Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France Cory Quammen, The University of North Carolina at Chapel Hill See: IterativeDeconvolutionImageFilter RichardsonLucyDeconvolutionImageFilter ProjectedLandweberDeconvolutionImageFilter itk::simple::LandweberDeconvolution for the procedural interface itk::LandweberDeconvolutionImageFilter for the Doxygen on the original ITK class. C++ includes: sitkLandweberDeconvolutionImageFilter.h
  • Constructor Details

    • LandweberDeconvolutionImageFilter

      protected LandweberDeconvolutionImageFilter(long cPtr, boolean cMemoryOwn)
    • LandweberDeconvolutionImageFilter

      public LandweberDeconvolutionImageFilter()
      itk::simple::LandweberDeconvolutionImageFilter::LandweberDeconvolutionImageFilter() Default Constructor that takes no arguments and initializes default parameters
  • Method Details

    • getCPtr

      protected static long getCPtr(LandweberDeconvolutionImageFilter obj)
    • swigRelease

      protected static long swigRelease(LandweberDeconvolutionImageFilter obj)
    • finalize

      protected void finalize()
      Overrides:
      finalize in class ImageFilter
    • delete

      public void delete()
      virtual itk::simple::LandweberDeconvolutionImageFilter::~LandweberDeconvolutionImageFilter() Destructor
      Overrides:
      delete in class ImageFilter
    • setAlpha

      public void setAlpha(double Alpha)
      Self& itk::simple::LandweberDeconvolutionImageFilter::SetAlpha(double Alpha) Set/get relaxation factor.
    • getAlpha

      public double getAlpha()
      double itk::simple::LandweberDeconvolutionImageFilter::GetAlpha() const Set/get relaxation factor.
    • setNumberOfIterations

      public void setNumberOfIterations(int NumberOfIterations)
      Self& itk::simple::LandweberDeconvolutionImageFilter::SetNumberOfIterations(int NumberOfIterations) Set the number of iterations.
    • getNumberOfIterations

      public int getNumberOfIterations()
      int itk::simple::LandweberDeconvolutionImageFilter::GetNumberOfIterations() const Get the number of iterations.
    • setNormalize

      public void setNormalize(boolean Normalize)
      Self& itk::simple::LandweberDeconvolutionImageFilter::SetNormalize(bool Normalize) Normalize the output image by the sum of the kernel components
    • normalizeOn

      public void normalizeOn()
      Self& itk::simple::LandweberDeconvolutionImageFilter::NormalizeOn() Set the value of Normalize to true or false respectfully.
    • normalizeOff

      public void normalizeOff()
      Self& itk::simple::LandweberDeconvolutionImageFilter::NormalizeOff()
    • getNormalize

      public boolean getNormalize()
      bool itk::simple::LandweberDeconvolutionImageFilter::GetNormalize() const
    • setBoundaryCondition

      public void setBoundaryCondition(LandweberDeconvolutionImageFilter.BoundaryConditionType BoundaryCondition)
      Self& itk::simple::LandweberDeconvolutionImageFilter::SetBoundaryCondition(BoundaryConditionType BoundaryCondition)
    • getBoundaryCondition

      BoundaryConditionType itk::simple::LandweberDeconvolutionImageFilter::GetBoundaryCondition() const
    • setOutputRegionMode

      public void setOutputRegionMode(LandweberDeconvolutionImageFilter.OutputRegionModeType OutputRegionMode)
      Self& itk::simple::LandweberDeconvolutionImageFilter::SetOutputRegionMode(OutputRegionModeType OutputRegionMode)
    • getOutputRegionMode

      OutputRegionModeType itk::simple::LandweberDeconvolutionImageFilter::GetOutputRegionMode() const
    • getName

      public String getName()
      std::string itk::simple::LandweberDeconvolutionImageFilter::GetName() const Name of this class
      Overrides:
      getName in class ProcessObject
    • toString

      public String toString()
      std::string itk::simple::LandweberDeconvolutionImageFilter::ToString() const Print ourselves out
      Overrides:
      toString in class ProcessObject
    • execute

      public Image execute(Image image1, Image image2)
      Image itk::simple::LandweberDeconvolutionImageFilter::Execute(const Image &image1, const Image &image2) Execute the filter on the input images