Class CImagePyramid
Defined in File CImagePyramid.h
Class Documentation
-
class CImagePyramid
Holds and builds a pyramid of images: starting with an image at full resolution (octave=1), it builds a number of half-resolution images: octave=2 at 1/2 , octave=3 at 1/2^2, octave=N at 1/2^(N-1).
Color (RGB) or grayscale pyramids can be built from color input images; only grayscale pyramids can be built from grayscale images.
The algorithm to halve the images can be either a 1:2 decimation or a smooth filter (arithmetic mean of every 4 pixels).
Pyramids are built by invoking the method buildPyramid() or buildPyramidFast()
Example of usage:
CImagePyramid pyr; CImage img = ... pyr.buildPyramid( img, 4, // num. of octaves true // smooth ); pyr.images[0].saveToFile("pyr0.jpg"); pyr.images[1].saveToFile("pyr1.jpg"); ...
See also
Note
Both converting to grayscale and building the octave images have SSE2-optimized implementations (if available).
Public Functions
-
CImagePyramid() = default
-
bool buildPyramid(const mrpt::img::CImage &img, size_t nOctaves, bool smooth_halves = true, bool convert_grayscale = false)
Fills the vector images with the different octaves built from the input image.
See also
- Parameters:
img – [in] The input image. Can be either color or grayscale.
nOctaves – [in] Number of octaves to build. 1 means just the original image, 2 means the original plus the 1/2 image, etc.
smooth_halves – [in] If true, use an arithmetic mean of every 2x2 pixel block when downsampling.
convert_grayscale – [in] If true, the pyramid is built in grayscale even for color input images.
- Returns:
true if SSE2-optimized versions of CImage::scaleHalf() was used to build all the scales in the pyramid.
-
bool buildPyramidFast(mrpt::img::CImage &img, size_t nOctaves, bool smooth_halves = true, bool convert_grayscale = false)
Exactly like buildPyramid(), but if the input image has not to be converted from RGB to grayscale, the image data buffer is reutilized for the 1st octave in images[0], emptying the input image.
See also
-
CImagePyramid() = default