STIRA  0.1
Public Member Functions | List of all members
stira::deconvolve::GNCDeconvolve Class Reference

child class for computing GNC-based image deconvolution GNC stands for Graduated Non Convexity, related stuff to markov random fields More...

#include <GNCDeconvolve.h>

Inheritance diagram for stira::deconvolve::GNCDeconvolve:
stira::deconvolve::IterativeDeconvolve stira::deconvolve::DeconvolveMaster

Public Member Functions

 GNCDeconvolve (Image *pDegradedImage, int maxNrOfIterations=20)
 constructor without setting PSF, so is still to be determined before run More...
 
 GNCDeconvolve (Image *pDegradedImage, Image *pPSF, int maxNrOfIterations=20)
 constructor with PSF More...
 
 ~GNCDeconvolve ()
 destructor
 
bool Run ()
 starts the deconvolution if all inputs are available After completion, get the result with GetRestoredImage() from the parent class
 
void PrintParameters ()
 prints for diagnostic purposes parameters to standard output
 
void InitializeParameters ()
 prints for diagnostic purposes parameters to standard output
 
int GetNumberOfScales ()
 gets the number of scales in the multiscale restoration
 
void SetNumberOfScales (int nrScales)
 sets the number of scales in the multiscale restoration More...
 
int GetNumberOfOrientations ()
 gets the number of orientations per scale in the multiscale restoration
 
void SetNumberOfOrientations (int nrOrientations)
 sets the number of orientations per scale in the multiscale restoration More...
 
double GetMu ()
 gets mu (scaling factor for data fitting)
 
void SetMu (double newMu)
 sets mu (scaling factor for data fitting) More...
 
double GetLambda ()
 gets lambda (scaling factor for regularization)
 
void SetLambda (double newLambda)
 sets lambda (scaling factor for regularization) More...
 
double GetGamma ()
 Gets value for gamma This parameter controls the amount of convexity of the cost function and is updated when iterations converge.
 
void SetGamma (double newGamma)
 Sets value for gamma. More...
 
double GetGammaFinal ()
 Gets value for final value of gamma.
 
void SetGammaFinal (double newGammaFinal)
 Sets value for final value of gamma. More...
 
double GetUpdateFactor ()
 Gets the update factor Parameter gamma controls the amount of convexity; when the iterations converge for a given gamma, gamma is multiplied with this factor and the computations are resumed.
 
void SetUpdateFactor (double newFactor)
 Gets the update factor Parameter gamma controls the amount of convexity; when the iterations converge for a given gamma, gamma is multiplied with this factor and the computations are resumed. More...
 
void SetMSEDifferenceThreshold (double myThreshold)
 sets threshold for MSE (Mean Square error) under which the iterations are stopped. More...
 
double GetMSEDifferenceThreshold ()
 gets threshold for MSE (Mean Square error) under which the iterations are stopped.
 
- Public Member Functions inherited from stira::deconvolve::IterativeDeconvolve
void SetLambda (double lambda)
 sets regularization parameter lambda
 
double GetLambda ()
 gets regularization parameter lambda
 
void SetStepSize (double stepSize)
 sets step size
 
double GetStepSize ()
 gets step size
 
int GetMaximumNrOfIterations ()
 gets the maximum number of iterations
 
void SetMaximumNrOfIterations (int nrIter)
 sets the maximum number of iterations More...
 
- Public Member Functions inherited from stira::deconvolve::DeconvolveMaster
ImageGetDegradedImage ()
 Gets the degraded input image.
 
void SetDegradedImage (Image *pDegradedImage)
 sets the degraded image to restore More...
 
ImageGetPSF ()
 gets the Point Spread Function (PSF) The PSF is a model of the blur; it is how every single point is imaged in the degraded image. For an ideal image, it would be a delta function; in reality, it is mostly a certain spot.
 
void SetPSF (Image *pPSF)
 sets the Point Spread Function (PSF) More...
 
ImageGetRestoredImage ()
 gets the result after running the deconvolution
 
void SetSigmaNoise (double sigma)
 sets the noise level More...
 
double GetSigmaNoise ()
 gets the noise level
 

Additional Inherited Members

- Protected Member Functions inherited from stira::deconvolve::IterativeDeconvolve
 IterativeDeconvolve (Image *pDegradedImage, int maxNrOfIterations=20)
 constructor Protected constructor; should be called by a child class More...
 
 IterativeDeconvolve (Image *pDegradedImage, Image *pPSF, int maxNrOfIterations=20)
 constructor Protected constructor; should be called by a child class More...
 
 ~IterativeDeconvolve ()
 destructor
 
void Initialize (int maxNrOfIterations)
 initializes all data structures for deconvolution
 
bool PrepareCurrentGrids ()
 Prepares grid for restoration Restoration goes per colour band per iteration, so for each step, the pointers mpDegradedGrid, mpLastGrid, mpNewGrid, mpPSFGrid are set here.
 
- Protected Member Functions inherited from stira::deconvolve::DeconvolveMaster
 DeconvolveMaster (Image *pDegradedImage)
 constructor Sets degraded input image; PSF is estimated or entered in later stage More...
 
 DeconvolveMaster (Image *pDegradedImage, Image *pPSF)
 constructor Sets degraded input image and PSF More...
 
virtual ~DeconvolveMaster ()
 constructor
 
bool AreParentConditionsOK ()
 checks basic conditions are fulfilled for all deconvolution methods
 
- Protected Attributes inherited from stira::deconvolve::IterativeDeconvolve
ImagempLastEstimate
 pointer to the restored image from previous iteration
 
ImagempNewEstimate
 pointer to the restored image from current iteration
 
double mLambda
 Regularization parameter.
 
double mStepSize
 Step size.
 
int mCurrentIterationNr
 number of the current iteration
 
int mCurrentBandNr
 number of the current band being retsored
 
int mMaximumNrOfIterations
 maximum number of iterations
 
ArrayGrid< double > * mpDegradedGrid
 pointer to a band of the degraded image
 
ArrayGrid< double > * mpLastGrid
 pointer to a band of the restored image from previous iteration
 
ArrayGrid< double > * mpNewGrid
 pointer to a band of the restored image from current iteration
 
ArrayGrid< double > * mpPSFGrid
 pointer to a band of the Point Spread Function
 
- Protected Attributes inherited from stira::deconvolve::DeconvolveMaster
ImagempDegradedImage
 degraded input image
 
ImagempRestoredImage
 restored image for output
 
ImagempPSF
 image containing the Point Spread Function
 
double mSigmaNoise
 sigma of the noise
 

Detailed Description

child class for computing GNC-based image deconvolution GNC stands for Graduated Non Convexity, related stuff to markov random fields

See my own PhD thesis WORK IN PROGRESS: re-implementing code from ~/bin/fft/fftw215/gnc2

Inspired on PhD thesis Sanja page 62

Constructor & Destructor Documentation

stira::deconvolve::GNCDeconvolve::GNCDeconvolve ( Image pDegradedImage,
int  maxNrOfIterations = 20 
)

constructor without setting PSF, so is still to be determined before run

Parameters
pDegradedImagethe input image to be restored
maxNrOfIterationsmaximum number of iterations

References InitializeParameters().

stira::deconvolve::GNCDeconvolve::GNCDeconvolve ( Image pDegradedImage,
Image pPSF,
int  maxNrOfIterations = 20 
)

constructor with PSF

Parameters
pDegradedImagethe input image to be restored
pPSFthe input PSF (needs same width and height as pDegradedImage)
maxNrOfIterationsmaximum number of iterations

References InitializeParameters().

Member Function Documentation

void stira::deconvolve::GNCDeconvolve::SetGamma ( double  newGamma)

Sets value for gamma.

Parameters
newGammanew value for gamma to set
void stira::deconvolve::GNCDeconvolve::SetGammaFinal ( double  newGammaFinal)

Sets value for final value of gamma.

Parameters
newGammaFinalnew value for final gamma to set
void stira::deconvolve::GNCDeconvolve::SetLambda ( double  newLambda)

sets lambda (scaling factor for regularization)

Parameters
newLambdanew value for lambda to set
void stira::deconvolve::GNCDeconvolve::SetMSEDifferenceThreshold ( double  myThreshold)

sets threshold for MSE (Mean Square error) under which the iterations are stopped.

Parameters
myThresholdnew value of the threshold to set
void stira::deconvolve::GNCDeconvolve::SetMu ( double  newMu)

sets mu (scaling factor for data fitting)

Parameters
newMunew value for mu to set
void stira::deconvolve::GNCDeconvolve::SetNumberOfOrientations ( int  nrOrientations)

sets the number of orientations per scale in the multiscale restoration

Parameters
nrOrientationsthe number of orientations per scale
void stira::deconvolve::GNCDeconvolve::SetNumberOfScales ( int  nrScales)

sets the number of scales in the multiscale restoration

Parameters
nrScalesthe number of scales
void stira::deconvolve::GNCDeconvolve::SetUpdateFactor ( double  newFactor)

Gets the update factor Parameter gamma controls the amount of convexity; when the iterations converge for a given gamma, gamma is multiplied with this factor and the computations are resumed.

Parameters
newFactornew value for the update factor

The documentation for this class was generated from the following files: