STIRA  0.1
Public Member Functions | Static Public Member Functions | List of all members
stira::pyramidapplications::PyramidDenoiser Class Reference

A class to demonstrate simple denoising of the bands of a steerable pyramid Reference: "Bivariate Shrinkage Functions for Wavelet-based Image Denoising", Sendur, L. and Selesnick, I., IEEE Transactions on Signal Processing, 50(11):2744-2756, November 2002. More...

#include <PyramidDenoiser.h>

Public Member Functions

 PyramidDenoiser (Pyramid< double > *pPyramid, ShrinkageRule myRule, double sigma)
 Constructor. More...
 
 ~PyramidDenoiser ()
 Destructor.
 
double GetSigmaNoise ()
 Gets the sigma of the noise.
 
void SetSigmaNoise (double sigmaNoise)
 Sets the sigma of the noise. More...
 
double GetScaleFactorResidualLevel ()
 gets scaling factor between coefficients magnitude in residual scale versus spatial domain Specifically to scale noise std deviation in spatial domain and residual level
 
void SetScaleFactorResidualLevel (double factor)
 sets scaling factor between coefficients magnitude in residual scale versus spatial domain More...
 
double GetScaleFactorResidualToRecursiveLevel ()
 gets scaling factor between coefficients magnitude in residual scale versus first recursive scale
 
void SetScaleFactorResidualToRecursiveLevel (double factor)
 sets scaling factor between coefficients magnitude in residual scale versus first recursive scale More...
 
double GetScaleFactorRecursiveLevel ()
 gets scaling factor between coefficients magnitude in two successice recursive scales
 
void SetScaleFactorRecursiveLevel (double factor)
 gets scaling factor between coefficients magnitude in two successice recursive scales More...
 
void Run ()
 Runs the denoising algorithm.
 

Static Public Member Functions

static double ComputeBivariateShrinkagefactor (double w1, double w2, double sigmaSignal, double sigmaNoise)
 Computes the shrinkage factor for the wavelet coefficients using the bivariate rule. More...
 
static double ComputeWienerShrinkagefactor (double sigmaSignal, double sigmaNoise)
 Computes the shrinkage factor for the wavelet coefficients using the Wiener rule. More...
 
static double ComputeLaplacianShrinkagefactor (double w1, double sigmaSignal, double sigmaNoise)
 Computes the shrinkage factor for the wavelet coefficients using the Laplacian rule. More...
 
static double EstimateSigmaSignal (ArrayGrid< double > *pBand, int xCenter, int yCenter, double sigmaNoise, int windowSize)
 Estimates the standard deviation of the signal in a given band around a given pixel (window size specified as a member variable) More...
 

Detailed Description

A class to demonstrate simple denoising of the bands of a steerable pyramid Reference: "Bivariate Shrinkage Functions for Wavelet-based Image Denoising", Sendur, L. and Selesnick, I., IEEE Transactions on Signal Processing, 50(11):2744-2756, November 2002.

URL: http://taco.poly.edu/selesi/bishrink/index.html

Constructor & Destructor Documentation

stira::pyramidapplications::PyramidDenoiser::PyramidDenoiser ( Pyramid< double > *  pPyramid,
ShrinkageRule  myRule,
double  sigma 
)

Constructor.

Parameters
pPyramida steerable pyramid to be denoised
myRuleshrinkage rule to apply to the coefficients
sigmasigma of the noise

References stira::imagedata::Pyramid< T >::HasResidualScale().

Member Function Documentation

double stira::pyramidapplications::PyramidDenoiser::ComputeBivariateShrinkagefactor ( double  w1,
double  w2,
double  sigmaSignal,
double  sigmaNoise 
)
static

Computes the shrinkage factor for the wavelet coefficients using the bivariate rule.

Parameters
w1coefficient in current subband
w2coefficient that corresponds with w1 in its parent scale
sigmaSignalestimated standard deviation of the local signal in a neighbourhood of w1 (only same band)
sigmaNoisenoise level (is not exactly sigma of the noise in case of steerable pyramids)

Referenced by stira::deconvolve::GNCDeconvolve::GetMSEDifferenceThreshold().

double stira::pyramidapplications::PyramidDenoiser::ComputeLaplacianShrinkagefactor ( double  w1,
double  sigmaSignal,
double  sigmaNoise 
)
static

Computes the shrinkage factor for the wavelet coefficients using the Laplacian rule.

Parameters
w1coefficient in current subband
sigmaSignalestimated standard deviation of the local signal in a neighbourhood of w1 (only same band)
sigmaNoisenoise level (is not exactly sigma of the noise in case of steerable pyramids)

References stira::imagedata::GridStatistics< T >::GetGridMean(), stira::imagedata::GridStatistics< T >::GetGridVariance(), stira::imagedata::ArrayGrid< T >::GetHeight(), stira::imagedata::PyramidLevel< T >::GetNumberOfOrientations(), stira::imagedata::PyramidLevel< T >::GetOrientedBand(), stira::imagedata::ArrayGrid< T >::GetValue(), stira::imagedata::ArrayGrid< T >::GetWidth(), and stira::imagedata::ArrayGrid< T >::SetValue().

double stira::pyramidapplications::PyramidDenoiser::ComputeWienerShrinkagefactor ( double  sigmaSignal,
double  sigmaNoise 
)
static

Computes the shrinkage factor for the wavelet coefficients using the Wiener rule.

Parameters
sigmaSignalestimated standard deviation of the local signal in a neighbourhood of w1 (only same band)
sigmaNoisenoise level (is not exactly sigma of the noise in case of steerable pyramids)
double stira::pyramidapplications::PyramidDenoiser::EstimateSigmaSignal ( ArrayGrid< double > *  pBand,
int  xCenter,
int  yCenter,
double  sigmaNoise,
int  windowSize 
)
static

Estimates the standard deviation of the signal in a given band around a given pixel (window size specified as a member variable)

Parameters
pBandthe band in which to estimate the local variance
xCenterx coordinate of center pixel of the local window in which to estimate the local variance
yCentery coordinate of center pixel of the local window in which to estimate the local variance
sigmaNoisesigma of the noise

References stira::imagedata::GridStatistics< T >::ComputeLocalMean(), stira::imagedata::GridStatistics< T >::ComputeLocalVariance(), stira::imagedata::ArrayGrid< T >::GetHeight(), and stira::imagedata::ArrayGrid< T >::GetWidth().

Referenced by stira::deconvolve::GNCDeconvolve::GetMSEDifferenceThreshold().

void stira::pyramidapplications::PyramidDenoiser::SetScaleFactorRecursiveLevel ( double  factor)

gets scaling factor between coefficients magnitude in two successice recursive scales

Parameters
factorfactor to set
void stira::pyramidapplications::PyramidDenoiser::SetScaleFactorResidualLevel ( double  factor)

sets scaling factor between coefficients magnitude in residual scale versus spatial domain

Parameters
factorfactor to set
void stira::pyramidapplications::PyramidDenoiser::SetScaleFactorResidualToRecursiveLevel ( double  factor)

sets scaling factor between coefficients magnitude in residual scale versus first recursive scale

Parameters
factorfactor to set
void stira::pyramidapplications::PyramidDenoiser::SetSigmaNoise ( double  sigmaNoise)

Sets the sigma of the noise.

Parameters
sigmaNoisesigma of the noise to set

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