STIRA
0.1
|
child class to compute FFT based complex-valued steerable pyramid decomposition/reconstruction Formulae used from appendix; main paper is about texture modeling More...
#include <PyramidComplex.h>
Public Member Functions | |
PyramidComplex (ArrayGrid< double > *pGridIn, int myNrScales, int myNrOrientations) | |
constructor More... | |
~PyramidComplex () | |
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 | VisualizeComplexBandpass (ArrayGrid< std::complex< double > > *pGrid, std::string bandType, int scaleNr, int orientationNr) |
Diagnostic method to visualize a complex-valued bandpass grid. More... | |
bool | VisualizeReconstructedBandpass (fouriertools::FFTBand *pFftBandIn, std::string bandType, int scaleNr, int orientationNr) |
Diagnostic method to visualize a complex-valued reconstructed subband. More... | |
Public Member Functions inherited from stira::steerable::PyramidMaster< std::complex< 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< std::complex< double > > * | GetPyramid () |
gets a pointer to the actual pyramid data | |
void | SetPyramid (Pyramid< std::complex< 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< std::complex< 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< std::complex< 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< std::complex< 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< std::complex< double > > | |
Pyramid< std::complex< 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 complex-valued steerable pyramid decomposition/reconstruction Formulae used from appendix; main paper is about texture modeling
{ portilla00parametric, author = {Portilla, J. and Simoncelli, E.}, title = {A Parametric Texture Model based on Joint Statistics of Complex Wavelet Coefficients}, journal = {Int. Journal of Computer Vision}, volume = {40}, number = {1}, pages = {49–71} year = {2000}, url = {http://citeseer.ist.psu.edu/portilla00parametric.html} }
stira::steerable::PyramidComplex::PyramidComplex | ( | 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::PyramidComplex::VisualizeComplexBandpass | ( | ArrayGrid< std::complex< double > > * | pGrid, |
std::string | bandType, | ||
int | scaleNr, | ||
int | orientationNr | ||
) |
Diagnostic method to visualize a complex-valued bandpass grid.
pGrid | bandpass grid to visualize |
bandType | type of subband (for generation of file name to write to) |
scaleNr | nr of scale of current subband |
orientationNr | nr of orientation of current subband |
References stira::imagetools::ImageIO::GRADIENT_OUT, and stira::imagetools::ImageIO::WritePGM().
bool stira::steerable::PyramidComplex::VisualizeReconstructedBandpass | ( | fouriertools::FFTBand * | pFftBandIn, |
std::string | bandType, | ||
int | scaleNr, | ||
int | orientationNr | ||
) |
Diagnostic method to visualize a complex-valued reconstructed subband.
pFftBandIn | subband to visualize |
bandType | type of subband (for generation of file name to write to) |
scaleNr | nr of scale of current subband |
orientationNr | nr of orientation of current subband |
References stira::fouriertools::FFTBand::ApplyInverseTransform(), stira::fouriertools::FFTBand::Clone(), stira::fouriertools::FFTBand::ConvertToComplexGrid(), stira::imagetools::ImageIO::GRADIENT_OUT, stira::imagetools::ImageIO::NORMAL_OUT, stira::fouriertools::FFTBand::SwitchQuadrants(), and stira::imagetools::ImageIO::WritePGM().