STIRA  0.1
Public Member Functions | List of all members
stira::steerable::PyramidReal Class Reference

child class to compute FFT based real-valued steerable pyramid decomposition/reconstruction Bibtex reference for formulae used here: Formulae used from appendix; main paper is about texture denoising article{ portilla03image, author = {Portilla, J. and Strela, V. and Wainwright, M. and Simoncelli, E.}, title = {Image denoising using scale mixtures of Gaussians in the wavelet domain}, journal = {IEEE Trans. Image Processing}, volume = {12}, number = {11}, pages = {1338–1351} year = {2003}, url = {http://citeseer.ist.psu.edu/article/portilla03image.html} } More...

#include <PyramidReal.h>

Inheritance diagram for stira::steerable::PyramidReal:
stira::steerable::PyramidMaster< double >

Public Member Functions

 PyramidReal (ArrayGrid< double > *pGridIn, int myNrScales, int myNrOrientations)
 constructor More...
 
 ~PyramidReal ()
 destructor
 
bool Decompose ()
 decomposes the source image in an steerable pyramid
 
bool Reconstruct ()
 reconstructs the steerable pyramid back to an image
 
bool Diagnose ()
 diagnoses the current steerable pyramid
 
bool VisualizeReconstructedBandpass (fouriertools::FFTBand *pFftSubband, std::string bandType, int scaleNr, int orientationNr)
 writes pFftSubband to a PGM file for diagnostics More...
 
- Public Member Functions inherited from stira::steerable::PyramidMaster< double >
 PyramidMaster (ArrayGrid< double > *pGridIn, int myNrScales, int myNrOrientations)
 constructor More...
 
virtual ~PyramidMaster ()
 destructor More...
 
fouriertools::FFTBandSumFFTBands (std::vector< fouriertools::FFTBand * > fftSubbandSet)
 calculates the sum over a set of FFTBands creates a new FFTBand that becomes the responsability of the caller to delete More...
 
ArrayGrid< double > * GetCopyOfReconstructedGrid ()
 creates a copy of the grid after reconstruction This becomes the responsability of the caller to delete; the local member which contains the reconstructed grid is then deleted by the destructor of this class More...
 
Pyramid< double > * GetPyramid ()
 gets a pointer to the actual pyramid data
 
void SetPyramid (Pyramid< double > *pPyramid)
 sets a pointer to new pyramid data if old data exists already, they are deleted first More...
 

Additional Inherited Members

- Protected Member Functions inherited from stira::steerable::PyramidMaster< double >
ArrayGrid< double > * ExtractL0 ()
 extracts the first L0 band
 
fouriertools::FFTBandExtractB0 (common::NumberMode myMode)
 extracts a B0 band with given orientation index More...
 
ArrayGrid< double > * ExtractL ()
 extracts recursive L band
 
fouriertools::FFTBandExtractB (common::NumberMode myMode)
 extracts a B band with given orientation index More...
 
fouriertools::FFTBandReconstructL0 (std::vector< fouriertools::FFTBand * > vpFFTBandSet)
 reconstructs the first L0 band Output is still in Fourier domain to save FFT's More...
 
fouriertools::FFTBandReconstructB0 (ArrayGrid< double > *pGridIn, common::NumberMode myMode)
 reconstructs a B0 band with given orientation index Output is still in Fourier domain to save FFT's More...
 
fouriertools::FFTBandReconstructL (ArrayGrid< double > *pGridIn)
 reconstructs L band Output is still in Fourier domain to save FFT's More...
 
fouriertools::FFTBandReconstructB (ArrayGrid< double > *pGridIn, common::NumberMode myMode)
 reconstructs a B0 band with given orientation index Output is still in Fourier domain to save FFT's More...
 
ArrayGrid< double > * MergeAndReconstructFFTBands (std::vector< fouriertools::FFTBand * > fftSubbandSet)
 computes sum, followed by inverse Fourier Transform More...
 
void ClearFFTVector (std::vector< fouriertools::FFTBand * > &set)
 clears an STL vector with FFTBands also deletes elements in the vector More...
 
void SetFFTBand (fouriertools::FFTBand *pFFTBand)
 sets current input FFTBand For computational efficiency, we compute the FFT of the input grid for a scale just once and keep this to extract the different bands from it More...
 
fouriertools::FFTBandGetFFTBand ()
 gets current input FFTBand For computational efficiency, we compute the FFT of the input grid for a scale just once and keep this to extract the different bands from it
 
void CleanFFTBand ()
 cleans current input FFTBand Also sets its pointer to 0
 
bool ViewTransferFunction (fouriertools::FFTBand *pTransferFunction, std::string token, int scale, int orientation, int maxNrOfOrientations, bool isForward)
 Writes a transfer function to PGM for diagnostics. More...
 
- Protected Attributes inherited from stira::steerable::PyramidMaster< double >
Pyramid< double > * mpPyramid
 the pyramid bands
 
ArrayGrid< double > * mpSourceGrid
 the source data grid
 
ArrayGrid< double > * mpReconstructedGrid
 the data grid after reconstruction
 
int mNrScales
 nr of scales in the pyramid
 
int mNrOrientations
 nr of orientations (in paper called K) per scale in the pyramid
 
int mWidth
 width of the source image
 
int mHeight
 height of the source image
 
bool mIsForwardTransform
 flag if we are computing the forward transform
 
ArrayGrid< double > * mpTmpHighpassGrid
 tmp member in order to avoid recomputation of this transfer function for each oriented subband
 
std::complex< double > mDecompositionFactor
 modulation factor for oriented bands (-i)^(K-1) during decomposition
 
std::complex< double > mReconstructionFactor
 modulation factor for oriented bands (-i)^(K-1) during reconstruction
 
fouriertools::FFTBandmpFFTBand
 FFT of the input grid for a scale.
 
int mCurrentScale
 current scale we are at (while decomposing or reconstructing)
 
int mCurrentOrientation
 current orientation within current scale we are at (while decomposing or reconstructing)
 

Detailed Description

child class to compute FFT based real-valued steerable pyramid decomposition/reconstruction Bibtex reference for formulae used here: Formulae used from appendix; main paper is about texture denoising article{ portilla03image, author = {Portilla, J. and Strela, V. and Wainwright, M. and Simoncelli, E.}, title = {Image denoising using scale mixtures of Gaussians in the wavelet domain}, journal = {IEEE Trans. Image Processing}, volume = {12}, number = {11}, pages = {1338–1351} year = {2003}, url = {http://citeseer.ist.psu.edu/article/portilla03image.html} }

Constructor & Destructor Documentation

stira::steerable::PyramidReal::PyramidReal ( ArrayGrid< double > *  pGridIn,
int  myNrScales,
int  myNrOrientations 
)

constructor

Parameters
pGridInsource input grid data
myNrScalesnr of scales in which to decompose the image
myNrOrientationsnr of orientations in which to decompose the image

Member Function Documentation

bool stira::steerable::PyramidReal::VisualizeReconstructedBandpass ( fouriertools::FFTBand pFftSubband,
std::string  bandType,
int  scaleNr,
int  orientationNr 
)

writes pFftSubband to a PGM file for diagnostics

Parameters
pFftSubbandband to export for visualization
bandTypeband type, to be used for rescaling and in file name
scaleNrnumber of current scale, to be used for rescaling and in file name
orientationNrnumber of current orientation, to be used for rescaling and in file name

References stira::fouriertools::FFTBand::ApplyInverseTransform(), stira::fouriertools::FFTBand::Clone(), stira::fouriertools::FFTBand::ConvertToRealGrid(), stira::imagetools::ImageIO::GRADIENT_OUT, stira::imagetools::ImageIO::NORMAL_OUT, stira::fouriertools::FFTBand::SwitchQuadrants(), and stira::imagetools::ImageIO::WritePGM().


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