#include "Image/Image.H"
#include "Util/Promotions.H"
#include <utility>
Go to the source code of this file.
Classes | |
struct | LocalEdge |
Functions | |
template<class T_or_RGB > | |
ImageSet< typename promote_trait< T_or_RGB, float > ::TP > | getScaleSpace (const Image< T_or_RGB > &input, const float &max_std) |
template<class T_or_RGB > | |
void | addScale (ImageSet< T_or_RGB > &pyr, const float &max_std) |
template<class T_or_RGB > | |
T_or_RGB | getScaleSpacePixel (const ImageSet< T_or_RGB > &pyr, const float &x, const float &y, const float &std) |
Get value of a pixel from a dyadic pyramid with trilinear interpolation. | |
template<class T_or_RGB > | |
promote_trait< T_or_RGB, float > ::TP | getDiffScaleSpacePixel (const ImageSet< T_or_RGB > &pyr, const float &x, const float &y, const float &std_center, const float &std_surround, const bool on_center=true) |
Get value of a difference of scales pixel from a dyadic pyramid with trilinear interpolation. | |
template<class T_or_RGB > | |
promote_trait< T_or_RGB, float > ::TP | getEdgeScaleSpacePixel (const ImageSet< T_or_RGB > &pyr, const float &x, const float &y, const float &std, const LocalEdge &edgemap) |
template<class T_or_RGB > | |
promote_trait< T_or_RGB, float > ::TP | getEdgeScaleSpacePixel (const ImageSet< T_or_RGB > &pyr, const float &x, const float &y, const float &std_center, const float &std_surround, const LocalEdge &edgemap) |
Definition in file ScaleSpaceOps.H.
promote_trait<T_or_RGB, float>::TP getDiffScaleSpacePixel | ( | const ImageSet< T_or_RGB > & | pyr, | |
const float & | x, | |||
const float & | y, | |||
const float & | std_center, | |||
const float & | std_surround, | |||
const bool | on_center = true | |||
) | [inline] |
Get value of a difference of scales pixel from a dyadic pyramid with trilinear interpolation.
Definition at line 224 of file ScaleSpaceOps.C.
References getScaleSpacePixel().
Referenced by getEdgeScaleSpacePixel().
promote_trait<T_or_RGB, float>::TP getEdgeScaleSpacePixel | ( | const ImageSet< T_or_RGB > & | pyr, | |
const float & | x, | |||
const float & | y, | |||
const float & | std_center, | |||
const float & | std_surround, | |||
const LocalEdge & | edgemap | |||
) | [inline] |
Get value of a local edge by pooling nearby difference of scales pixel from a pyramid with trilinear interpolation. The wiring diagram is inspired by: Hirsh and Martiniz, Trends Neuro Sci, 2006 (for a reviw). We model the orientation of a pixel as an on-center DiffScaleSpacePixel adjacent to an off-center one, creating a local orientation estimation. When the parameters are chosen correctly this looks simmilar to a odd gabor or a third derivitive Gaussian An edge is then modeled as a length of local co-oriented local orientations at a specific density. The result is squared.
Note: the variance and surround_mult should be the same as was used to construct the LocalEdge object
Definition at line 258 of file ScaleSpaceOps.C.
References getDiffScaleSpacePixel(), and sum().
promote_trait<T_or_RGB, float>::TP getEdgeScaleSpacePixel | ( | const ImageSet< T_or_RGB > & | pyr, | |
const float & | x, | |||
const float & | y, | |||
const float & | std, | |||
const LocalEdge & | edgemap | |||
) | [inline] |
Get value of a local edge by pooling nearby on only and off only responses, but allowing the centers to differ. The tree shrew apparently creates edge detecting cells in this fashion see Hirsh and Martiniz, Trends Neuro Sci, 2006 for a review. The result is squared.
Note: the std should be the same as was used to construct the LocalEdge object
Definition at line 236 of file ScaleSpaceOps.C.
References getScaleSpacePixel(), and sum().
T_or_RGB getScaleSpacePixel | ( | const ImageSet< T_or_RGB > & | pyr, | |
const float & | x, | |||
const float & | y, | |||
const float & | std | |||
) | [inline] |
Get value of a pixel from a dyadic pyramid with trilinear interpolation.
Definition at line 165 of file ScaleSpaceOps.C.
References ASSERT, and ImageSet< T >::size().
Referenced by getDiffScaleSpacePixel(), and getEdgeScaleSpacePixel().