|
latest version v1.9 - last update 24 Nov 2005 |
|
#include <ltiAxLocalRegions.h>
Inheritance diagram for lti::axLocalRegions:


Public Member Functions | |
| axLocalRegions () | |
| axLocalRegions (const axLocalRegions &other) | |
| virtual | ~axLocalRegions () |
| virtual const char * | getTypeName () const |
| bool | apply (const channel &src, std::list< location > &locs) const |
| bool | apply (const channel &src, std::map< float, std::list< location > > &locs) const |
| axLocalRegions & | copy (const axLocalRegions &other) |
| axLocalRegions & | operator= (const axLocalRegions &other) |
| virtual functor * | clone () const |
| const parameters & | getParameters () const |
Protected Member Functions | |
| bool | pyramidToLocs (const channel &src, const pyramid< channel > &pyr, std::list< location > &locs) const |
Classes | |
| class | parameters |
| the parameters for the class axLocalRegions More... | |
"Object Recognition from Local Scale-Invariant Features", Proc. of the International Conference on Computer Vision, Corfu, Greece Sept. 1999. pp. 1150-1157. This paper can be found at
http://www.cs.ubc.ca/spider/lowe/papers/iccv99.pdf
It uses the DoG to detect relevant locations, and depending on the scale at which the location was found, a corresponding radius will be assigned. The orientation of the location will be computed using a small orientation histogram on the gradient of the image.
The location detection is done somehow different as in Lowe's paper, in order to get a result much faster (but maybe with more locations as necessary):
|
|
default constructor
|
|
|
copy constructor
|
|
|
destructor
|
|
||||||||||||
|
extracts the most relevant locations from the given channel, and return them in a map of lists of lti::location objects, the map first key is the radius of the locations. You can iterate in the lists of locations with the same radius as follows:
std::map<float,std::list<location> > locs; // map of lists of locations channel chnl; // channel to be analyzed draw<float> drawer; // draw on channel drawer.use(chnl); // using chnl as canvas // ... load or create the channel to be analyzed axLocalRegions localizer; // our local regions functor localizer.apply(chnl,locs); // get the local regions std::map<float,std::list<location> >::const_iterator locsIt; std::list<location>::const_iterator it; for (locsIt=locs.begin();locsIt!=locs.end();++locsIt) { cout << "Locations for radius " << (*locsIt).first << endl; // do something with each location at this level: for (it=(*locsIt).second.begin(); it!=(*locsIt).second.end(); ++it) { // for example, draw the location: drawer.set(*it); } }
|
|
||||||||||||
|
extracts the most relevant locations from the given channel, and return them as list of lti::location objects
|
|
|
returns a pointer to a clone of this functor.
Implements lti::functor. |
|
|
copy data of "other" functor.
|
|
|
returns used parameters
Reimplemented from lti::transform. |
|
|
returns the name of this type ("axLocalRegions")
Reimplemented from lti::transform. |
|
|
alias for copy member
|
|
||||||||||||||||
|
with the final DoG pyramid, compute the location list
|