Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

PyramidOps.H File Reference


Detailed Description

Free functions operating on pyramid data structures

Definition in file PyramidOps.H.

#include "Image/Convolutions.H"
#include "Image/PyramidTypes.H"
#include "Util/Promotions.H"
#include "Util/Types.H"

Include dependency graph for PyramidOps.H:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Enumerations

enum  GaborFlags { DO_ENERGY_NORM = 1, DO_LAPLACIAN = 2, DO_CLAMPED_DIFF = 4, NO_ABS = 8 }

Functions

template<class T_or_RGB>
T_or_RGB getPyrPixel (const ImageSet< T_or_RGB > &pyr, const Point2D< int > &p, const uint lev)
 Get value of a pixel from a dyadic pyramid at a given level and coordinates.
template<class T_or_RGB>
T_or_RGB getPyrPixelNI (const ImageSet< T_or_RGB > &pyr, const Point2D< int > &p, const uint lev)
 Get value of a pixel from a dyadic pyramid at a given level and coordinates, no interpolation.
template<class T_or_RGB>
T_or_RGB getPyrPixel (const ImageSet< T_or_RGB > &pyr, const float x, const float y, const float z)
 Get value of a pixel from a dyadic pyramid with trilinear interpolation.
template<class T_or_RGB>
ImageSet< T_or_RGB > buildPyrGaussian (const Image< T_or_RGB > &image, int firstlevel, int depth, int filterSize)
 Uses a Gaussian filter of size filterSize.
template<class T_or_RGB>
ImageSet< T_or_RGB > buildPyrConvolve (const Image< T_or_RGB > &image, int firstlevel, int depth, const Image< float > &filter, ConvolutionBoundaryStrategy boundary)
 Uses an arbitrary filter given as argument.
template<class T_or_RGB>
ImageSet< T_or_RGB > buildPyrLaplacian (const Image< T_or_RGB > &image, int firstlevel, int depth, int filterSize)
 Uses a Laplacian filter of size filterSize.
template<class T_or_RGB>
ImageSet< T_or_RGB > buildPyrOrientedFromLaplacian (const ImageSet< T_or_RGB > &laplacian, int filterSize, float theta, float intens=10.0f, const bool usetab=false)
 Uses an oriented Laplacian filter with a given size/orientation/intensity.
template<class T_or_RGB>
ImageSet< T_or_RGB > buildPyrOriented (const Image< T_or_RGB > &image, int firstlevel, int depth, int filterSize, float theta, float intens=10.0f, const bool usetab=false)
 Uses an oriented Laplacian filter with a given size/orientation/intensity.
template<class T_or_RGB>
ImageSet< T_or_RGB > buildPyrLocalAvg (const Image< T_or_RGB > &image, int depth)
 Just fills the deepest level with the local image average at that scale.
template<class T_or_RGB>
ImageSet< T_or_RGB > buildPyrLocalAvg2x2 (const Image< T_or_RGB > &image, int depth)
 Each level contains local 2x2 averages of the previous level.
template<class T_or_RGB>
ImageSet< T_or_RGB > buildPyrLocalMax (const Image< T_or_RGB > &image, int depth)
 Just fills the deepest level with the local image maximum at that scale.
template<class T_or_RGB>
ImageSet< T_or_RGB > buildPyrGeneric (const Image< T_or_RGB > &image, int firstlevel, int depth, const PyramidType typ, const float gabor_theta=0.0f, const float gabor_intens=10.0f)
 Build a pyramid of type given by the PyramidType.
ImageSet< float > buildPyrGabor (const ImageSet< float > &gaussianPyr, float angle, float filter_period, float elongation=1.0, int size=-1, int flags=0)
 Build a Gabor Pyramid with a given angle, filter period and elongation.
ImageSet< float > buildPyrGabor (const Image< float > &img, int firstlevel, int depth, float angle, float filter_period, float elongation=1.0, int size=-1, int flags=0)
 Build a Gabor Pyramid with a given angle, filter period and elongation.
template<class T>
Image< T > centerSurround (const ImageSet< T > &pyr, const int lev1, const int lev2, const bool absol=false, const ImageSet< float > *clipPyr=0)
 Compute center-surround between images at lev1 and lev2.
template<class T>
void centerSurround (const ImageSet< T > &pyr, const int lev1, const int lev2, Image< T > &pos, Image< T > &neg, const ImageSet< float > *clipPyr=0)
 Compute center-surround between images, splitting positive and negative.
template<class T>
Image< T > centerSurroundSingleOpponent (const ImageSet< T > &cpyr, const ImageSet< T > &spyr, const int lev1, const int lev2, const bool absol=false, const ImageSet< float > *clipPyr=0)
 Compute single-opponent center-surround between images at lev1 and lev2.
template<class T>
void centerSurroundSingleOpponent (const ImageSet< T > &cpyr, const ImageSet< T > &spyr, const int lev1, const int lev2, Image< T > &pos, Image< T > &neg, const ImageSet< float > *clipPyr=0)
 Compute single-opp center-surr between imgs, splitting pos and neg.
template<class T>
Image< T > centerSurroundDiff (const ImageSet< T > &pyr1, const ImageSet< T > &pyr2, const int lev1, const int lev2, const bool absol=false, const ImageSet< float > *clipPyr=0)
 Compute center-surround between difference images at lev1 and lev2.
template<class T>
void centerSurroundDiff (const ImageSet< T > &pyr1, const ImageSet< T > &pyr2, const int lev1, const int lev2, Image< T > &pos, Image< T > &neg, const ImageSet< float > *clipPyr=0)
 Compute center-surround differnces, splitting pos & neg values.
template<class T>
Image< T > centerSurroundDiffSingleOpponent (const ImageSet< T > &cpyr1, const ImageSet< T > &cpyr2, const ImageSet< T > &spyr1, const ImageSet< T > &spyr2, const int lev1, const int lev2, const bool absol=false, const ImageSet< float > *clipPyr=0)
 Compute single-opp center-surround btw difference images at lev1 and lev2.
template<class T>
void centerSurroundDiffSingleOpponent (const ImageSet< T > &cpyr1, const ImageSet< T > &cpyr2, const ImageSet< T > &spyr1, const ImageSet< T > &spyr2, const int lev1, const int lev2, Image< T > &pos, Image< T > &neg, const ImageSet< float > *clipPyr=0)
 Compute single-opp center-surround differnces, splitting pos & neg values.
template<class T_or_RGB>
Image< T_or_RGB > weightedBlur (const Image< byte > &modulator, const ImageSet< T_or_RGB > &pyr)
 generate a weighted blur
template<class T_or_RGB>
Image< T_or_RGB > foveate (const Image< byte > &mask, const ImageSet< T_or_RGB > &pyr)
 Generate a foveation blur.


Function Documentation

template<class T_or_RGB>
ImageSet<T_or_RGB> buildPyrConvolve const Image< T_or_RGB > &  image,
int  firstlevel,
int  depth,
const Image< float > &  filter,
ConvolutionBoundaryStrategy  boundary
 

Uses an arbitrary filter given as argument.

ImageSet<float> buildPyrGabor const Image< float > &  img,
int  firstlevel,
int  depth,
float  angle,
float  filter_period,
float  elongation = 1.0,
int  size = -1,
int  flags = 0
 

Build a Gabor Pyramid with a given angle, filter period and elongation.

Parameters:
size determines the filter size (in pixels) - in the default case (-1), the size is computed from the filter_preiod and elongation

ImageSet<float> buildPyrGabor const ImageSet< float > &  gaussianPyr,
float  angle,
float  filter_period,
float  elongation = 1.0,
int  size = -1,
int  flags = 0
 

Build a Gabor Pyramid with a given angle, filter period and elongation.

Parameters:
size determines the filter size (in pixels) - in the default case (-1), the size is computed from the filter_preiod and elongation

template<class T_or_RGB>
ImageSet<T_or_RGB> buildPyrGaussian const Image< T_or_RGB > &  image,
int  firstlevel,
int  depth,
int  filterSize
 

Uses a Gaussian filter of size filterSize.

template<class T_or_RGB>
ImageSet<T_or_RGB> buildPyrGeneric const Image< T_or_RGB > &  image,
int  firstlevel,
int  depth,
const PyramidType  typ,
const float  gabor_theta = 0.0f,
const float  gabor_intens = 10.0f
 

Build a pyramid of type given by the PyramidType.

template<class T_or_RGB>
ImageSet<T_or_RGB> buildPyrLaplacian const Image< T_or_RGB > &  image,
int  firstlevel,
int  depth,
int  filterSize
 

Uses a Laplacian filter of size filterSize.

template<class T_or_RGB>
ImageSet<T_or_RGB> buildPyrLocalAvg const Image< T_or_RGB > &  image,
int  depth
 

Just fills the deepest level with the local image average at that scale.

template<class T_or_RGB>
ImageSet<T_or_RGB> buildPyrLocalAvg2x2 const Image< T_or_RGB > &  image,
int  depth
 

Each level contains local 2x2 averages of the previous level.

template<class T_or_RGB>
ImageSet<T_or_RGB> buildPyrLocalMax const Image< T_or_RGB > &  image,
int  depth
 

Just fills the deepest level with the local image maximum at that scale.

template<class T_or_RGB>
ImageSet<T_or_RGB> buildPyrOriented const Image< T_or_RGB > &  image,
int  firstlevel,
int  depth,
int  filterSize,
float  theta,
float  intens = 10.0f,
const bool  usetab = false
 

Uses an oriented Laplacian filter with a given size/orientation/intensity.

This is a fast approximation to gabor convolution.

Parameters:
usetab Whether to use trig tables to speed up the computations at the cost of some loss of precision.

template<class T_or_RGB>
ImageSet<T_or_RGB> buildPyrOrientedFromLaplacian const ImageSet< T_or_RGB > &  laplacian,
int  filterSize,
float  theta,
float  intens = 10.0f,
const bool  usetab = false
 

Uses an oriented Laplacian filter with a given size/orientation/intensity.

This is a fast approximation to gabor convolution.

Parameters:
usetab Whether to use trig tables to speed up the computations at the cost of some loss of precision.

template<class T>
void centerSurround const ImageSet< T > &  pyr,
const int  lev1,
const int  lev2,
Image< T > &  pos,
Image< T > &  neg,
const ImageSet< float > *  clipPyr = 0
 

Compute center-surround between images, splitting positive and negative.

template<class T>
Image<T> centerSurround const ImageSet< T > &  pyr,
const int  lev1,
const int  lev2,
const bool  absol = false,
const ImageSet< float > *  clipPyr = 0
 

Compute center-surround between images at lev1 and lev2.

template<class T>
void centerSurroundDiff const ImageSet< T > &  pyr1,
const ImageSet< T > &  pyr2,
const int  lev1,
const int  lev2,
Image< T > &  pos,
Image< T > &  neg,
const ImageSet< float > *  clipPyr = 0
 

Compute center-surround differnces, splitting pos & neg values.

template<class T>
Image<T> centerSurroundDiff const ImageSet< T > &  pyr1,
const ImageSet< T > &  pyr2,
const int  lev1,
const int  lev2,
const bool  absol = false,
const ImageSet< float > *  clipPyr = 0
 

Compute center-surround between difference images at lev1 and lev2.

Difference images are obtained at each level by taking the difference between the image from *this minus the image from other_pyr

template<class T>
void centerSurroundDiffSingleOpponent const ImageSet< T > &  cpyr1,
const ImageSet< T > &  cpyr2,
const ImageSet< T > &  spyr1,
const ImageSet< T > &  spyr2,
const int  lev1,
const int  lev2,
Image< T > &  pos,
Image< T > &  neg,
const ImageSet< float > *  clipPyr = 0
 

Compute single-opp center-surround differnces, splitting pos & neg values.

template<class T>
Image<T> centerSurroundDiffSingleOpponent const ImageSet< T > &  cpyr1,
const ImageSet< T > &  cpyr2,
const ImageSet< T > &  spyr1,
const ImageSet< T > &  spyr2,
const int  lev1,
const int  lev2,
const bool  absol = false,
const ImageSet< float > *  clipPyr = 0
 

Compute single-opp center-surround btw difference images at lev1 and lev2.

Difference images are obtained at each level by taking the difference between the image from *this minus the image from other_pyr

template<class T>
void centerSurroundSingleOpponent const ImageSet< T > &  cpyr,
const ImageSet< T > &  spyr,
const int  lev1,
const int  lev2,
Image< T > &  pos,
Image< T > &  neg,
const ImageSet< float > *  clipPyr = 0
 

Compute single-opp center-surr between imgs, splitting pos and neg.

template<class T>
Image<T> centerSurroundSingleOpponent const ImageSet< T > &  cpyr,
const ImageSet< T > &  spyr,
const int  lev1,
const int  lev2,
const bool  absol = false,
const ImageSet< float > *  clipPyr = 0
 

Compute single-opponent center-surround between images at lev1 and lev2.

This is essentially cpyr[lev1] - spyr[lev2]

template<class T_or_RGB>
Image<T_or_RGB> foveate const Image< byte > &  mask,
const ImageSet< T_or_RGB > &  pyr
 

Generate a foveation blur.

Mask should be 255 inside the object and 0 outside; the pyramid should be a Gaussian pyramid and will be used to create the eccentricity-dependent blur. The deeper the pyramid, the more severe the blur

template<class T_or_RGB>
T_or_RGB getPyrPixel const ImageSet< T_or_RGB > &  pyr,
const float  x,
const float  y,
const float  z
 

Get value of a pixel from a dyadic pyramid with trilinear interpolation.

template<class T_or_RGB>
T_or_RGB getPyrPixel const ImageSet< T_or_RGB > &  pyr,
const Point2D< int > &  p,
const uint  lev
 

Get value of a pixel from a dyadic pyramid at a given level and coordinates.

Parameters:
pix The pixel value returned
p Coordinates given at scale 0 (base pyramid level); bilinear interpolation will be used to compute pixel value at given level.
lev The pyramid level to get the pixel value from.

template<class T_or_RGB>
T_or_RGB getPyrPixelNI const ImageSet< T_or_RGB > &  pyr,
const Point2D< int > &  p,
const uint  lev
 

Get value of a pixel from a dyadic pyramid at a given level and coordinates, no interpolation.

Parameters:
pix The pixel value returned
p Coordinates given at scale 0 (base pyramid level); This version does not use interpolation.
lev The pyramid level to get the pixel value from.

template<class T_or_RGB>
Image<T_or_RGB> weightedBlur const Image< byte > &  modulator,
const ImageSet< T_or_RGB > &  pyr
 

generate a weighted blur

The higher the modulator value (0..255), the more blurring at that location


Generated on Sun Nov 22 13:44:11 2009 for iLab Neuromorphic Vision Toolkit by  doxygen 1.4.4