STIRA
0.1
|
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>
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::FFTBand * | SumFFTBands (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::FFTBand * | ExtractB0 (common::NumberMode myMode) |
extracts a B0 band with given orientation index More... | |
ArrayGrid< double > * | ExtractL () |
extracts recursive L band | |
fouriertools::FFTBand * | ExtractB (common::NumberMode myMode) |
extracts a B band with given orientation index More... | |
fouriertools::FFTBand * | ReconstructL0 (std::vector< fouriertools::FFTBand * > vpFFTBandSet) |
reconstructs the first L0 band Output is still in Fourier domain to save FFT's More... | |
fouriertools::FFTBand * | ReconstructB0 (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::FFTBand * | ReconstructL (ArrayGrid< double > *pGridIn) |
reconstructs L band Output is still in Fourier domain to save FFT's More... | |
fouriertools::FFTBand * | ReconstructB (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::FFTBand * | GetFFTBand () |
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::FFTBand * | mpFFTBand |
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) | |
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} }
stira::steerable::PyramidReal::PyramidReal | ( | ArrayGrid< double > * | pGridIn, |
int | myNrScales, | ||
int | myNrOrientations | ||
) |
constructor
pGridIn | source input grid data |
myNrScales | nr of scales in which to decompose the image |
myNrOrientations | nr of orientations in which to decompose the image |
bool stira::steerable::PyramidReal::VisualizeReconstructedBandpass | ( | fouriertools::FFTBand * | pFftSubband, |
std::string | bandType, | ||
int | scaleNr, | ||
int | orientationNr | ||
) |
writes pFftSubband to a PGM file for diagnostics
pFftSubband | band to export for visualization |
bandType | band type, to be used for rescaling and in file name |
scaleNr | number of current scale, to be used for rescaling and in file name |
orientationNr | number 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().