A class that does space-variant processing with dyadic pyramid. More...
#include <Foveator/PyrFoveator.H>
Public Member Functions | |
PyrFoveator (const Image< PixRGB< byte > > &img, int filterSize) | |
Construct a PyrFoveator for img. | |
PyrFoveator (const PyrFoveator &pf) | |
Construct a PyrFoveator from another. | |
PyrFoveator & | operator= (const PyrFoveator &pf) |
Construct a PyrFoveator equal to another. | |
~PyrFoveator () | |
Destructor. | |
void | setBaseRect (Dims &d) |
Set dimensions of smallest rectangle with highest resolution. | |
void | setBaseRect (int x, int y) |
Set dimensions of smallest rectangle with highest resolution. | |
Image< PixRGB< byte > > | foveate (void) |
Perform dyadic pyramid foveation and return resulting image. | |
Static Public Member Functions | |
static Image< PixRGB< byte > > | foveate (const Image< PixRGB< byte > > &img, int filterSize, int baseRectWidth, int baseRectHeight, int x, int y) |
Perform one dyadic pyramid foveation without a PyrFoveator. |
A class that does space-variant processing with dyadic pyramid.
A Gaussian pyramid is constructed from the original image, each level with resolution halved, image size 1/4 of previous level. After building the pyramid, a foveated image is reassembled by starting with low-resolution image expanded to full-size, then superimposing smaller rectangles of higher resolution.
Testing has shown that PyrFoveator is somewhat faster than BlurFoveator and can perform similar blurring, but PyrFoveator creates noticeable straight-line boundaries between rectangles of differing resolution.
Definition at line 24 of file PyrFoveator.H.
Construct a PyrFoveator for img.
This constructor will create a PyrFoveator that handles img and all other images of the same dimensions.
img | image to be foveated | |
filterSize | size of blur filter to be applied |
Definition at line 15 of file PyrFoveator.C.
Referenced by operator=().
PyrFoveator::PyrFoveator | ( | const PyrFoveator & | pf | ) |
Construct a PyrFoveator from another.
Definition at line 23 of file PyrFoveator.C.
PyrFoveator::~PyrFoveator | ( | ) |
Destructor.
Definition at line 37 of file PyrFoveator.C.
Image< PixRGB< byte > > PyrFoveator::foveate | ( | const Image< PixRGB< byte > > & | img, | |
int | filterSize, | |||
int | baseRectWidth, | |||
int | baseRectHeight, | |||
int | x, | |||
int | y | |||
) | [static] |
Perform one dyadic pyramid foveation without a PyrFoveator.
This function is for foveating ONE image with a call such as PyrFoveator::foveate(). It is not optimized for foveating multiple images.
img | image to be foveated | |
filterSize | size of blur filter to be applied | |
baseRectWidth | width of base rectangle | |
baseRectHeight | height of base rectangle | |
x | horizontal coordinate of origin | |
y | vertical coordinate of origin |
Definition at line 107 of file PyrFoveator.C.
References GaussianPyrBuilder< T >::build(), Image< T >::coordsOk(), rescale(), and Image< T >::setVal().
Perform dyadic pyramid foveation and return resulting image.
Implements Foveator.
Definition at line 58 of file PyrFoveator.C.
References GaussianPyrBuilder< T >::build(), Image< T >::coordsOk(), Dims::h(), Foveator::height, Point2D< T >::i, Foveator::origin, Foveator::original, rescale(), Image< T >::setVal(), Dims::w(), and Foveator::width.
Referenced by main().
PyrFoveator & PyrFoveator::operator= | ( | const PyrFoveator & | pf | ) |
Construct a PyrFoveator equal to another.
Definition at line 30 of file PyrFoveator.C.
References PyrFoveator().
void PyrFoveator::setBaseRect | ( | int | x, | |
int | y | |||
) |
Set dimensions of smallest rectangle with highest resolution.
Definition at line 50 of file PyrFoveator.C.
void PyrFoveator::setBaseRect | ( | Dims & | d | ) |
Set dimensions of smallest rectangle with highest resolution.
Definition at line 45 of file PyrFoveator.C.
Referenced by main().