#include <CurvatureDetector.h>
Public Member Functions | |
CurvatureDetector (const PeakFinder *peak, unsigned int scales=5, double sigma=0.2, double step=1.4, unsigned int dmst=4) | |
virtual void | detect (const Graph &graph, const std::vector< Point2D > &graphPoints, std::vector< std::vector< Point2D > > &operatorA, std::vector< std::vector< double > > &signalDiff, std::vector< std::vector< unsigned int > > &indexes) const |
virtual unsigned int | detect (const LaserReading &reading, std::vector< InterestPoint * > &point, std::vector< double > &signal, std::vector< std::vector< double > > &signalSmooth, std::vector< std::vector< double > > &signalDiff, std::vector< std::vector< unsigned int > > &indexes) const |
virtual unsigned int | detect (const LaserReading &reading, std::vector< InterestPoint * > &points, Graph &graph, std::vector< std::vector< Point2D > > &operatorA, std::vector< std::vector< double > > &signalDiff, std::vector< std::vector< unsigned int > > &indexes) const |
virtual unsigned int | detect (const LaserReading &reading, std::vector< InterestPoint * > &point) const |
double | getBaseSigma () const |
unsigned int | getDmst () const |
const PeakFinder * | getPeakFinder () const |
unsigned int | getScaleNumber () const |
const std::vector< double > & | getScales () const |
double | getSigmaStep () const |
bool | getUseMaxRange () |
void | setBaseSigma (double sigma) |
void | setDmst (unsigned int dmst) |
void | setPeakFinder (const PeakFinder *peak) |
void | setScaleNumber (unsigned int scales) |
void | setSigmaStep (double step) |
void | setUseMaxRange (bool use) |
Protected Member Functions | |
virtual void | computeGraph (const LaserReading &reading, std::vector< Point2D > &graphPoints, Graph &graph, std::vector< unsigned int > &maxRangeMapping) const |
virtual unsigned int | computeInterestPoints (const LaserReading &reading, const std::vector< std::vector< Point2D > > &operatorA, std::vector< InterestPoint * > &point, const std::vector< std::vector< unsigned int > > &indexes, std::vector< unsigned int > &maxRangeMapping) const |
void | computeScaleBank () |
Protected Attributes | |
double | m_baseSigma |
unsigned int | m_dmst |
const PeakFinder * | m_peakFinder |
unsigned int | m_scaleNumber |
std::vector< double > | m_scales |
double | m_sigmaStep |
bool | m_useMaxRange |
Representation of the multi scale curvature detector of Unnikrishnan and Hebert. The class represents the curvature based detector of Unnikrishnan and Hebert. It provides the interface to set the parameters of the detector and to detect interest points in laser readings.
Definition at line 55 of file CurvatureDetector.h.
CurvatureDetector::CurvatureDetector | ( | const PeakFinder * | peak, | |
unsigned int | scales = 5 , |
|||
double | sigma = 0.2 , |
|||
double | step = 1.4 , |
|||
unsigned int | dmst = 4 | |||
) |
Constructor. Constructs and initialize the curvature based detector.
peak | The peak finder used to detect maxima in the signal. | |
scales | The number of different scales to consider. | |
sigma | The standard deviation of the smoothing kernel for the initial scale ( in the paper). | |
step | The scale increment at every new scale ( in the paper). The standard deviation of the kernel at scale is | |
dmst | The number of minimum spanning tree to approximate the geodesic coordinate (see the paper for more details). |
Definition at line 3 of file CurvatureDetector.cpp.
void CurvatureDetector::computeGraph | ( | const LaserReading & | reading, | |
std::vector< Point2D > & | graphPoints, | |||
Graph & | graph, | |||
std::vector< unsigned int > & | maxRangeMapping | |||
) | const [protected, virtual] |
Computes the graph approximation of the geodesic coordinate.
Definition at line 62 of file CurvatureDetector.cpp.
unsigned int CurvatureDetector::computeInterestPoints | ( | const LaserReading & | reading, | |
const std::vector< std::vector< Point2D > > & | operatorA, | |||
std::vector< InterestPoint * > & | point, | |||
const std::vector< std::vector< unsigned int > > & | indexes, | |||
std::vector< unsigned int > & | maxRangeMapping | |||
) | const [protected, virtual] |
Computes the interest points given the laser reading and the smoothed operator. It should not be used directly. Use the public functions instead.
Definition at line 153 of file CurvatureDetector.cpp.
void CurvatureDetector::computeScaleBank | ( | ) | [protected] |
Computes the scale bank for the smoothing operators. It is provided for efficiency issues.
Definition at line 217 of file CurvatureDetector.cpp.
void CurvatureDetector::detect | ( | const Graph & | graph, | |
const std::vector< Point2D > & | graphPoints, | |||
std::vector< std::vector< Point2D > > & | operatorA, | |||
std::vector< std::vector< double > > & | signalDiff, | |||
std::vector< std::vector< unsigned int > > & | indexes | |||
) | const [virtual] |
Detects the interesting points given the graph. It also returns the signals used for the computation.
graph | The graph approximation for the geodesic coordinate. | |
graphPoints | The point cloud in Cartesian coordinates. | |
operatorA | The result of the smoothing operator on the geodesic coordinate at the different scales.. | |
signalDiff | The exponential dump applied to the smoothing operator at the different scales. | |
indexes | The indexes of the differential operator maxima at the different scales. |
Definition at line 104 of file CurvatureDetector.cpp.
unsigned int CurvatureDetector::detect | ( | const LaserReading & | reading, | |
std::vector< InterestPoint * > & | points, | |||
std::vector< double > & | signal, | |||
std::vector< std::vector< double > > & | signalSmooth, | |||
std::vector< std::vector< double > > & | signalDiff, | |||
std::vector< std::vector< unsigned int > > & | indexes | |||
) | const [virtual] |
Detects the interesting points given the laser reading. It also returns the signals used for the computation.
reading | The laser reading. | |
points | The detected interest points. | |
signal | The signal used for computing the interest points. | |
signalSmooth | The smoothed signal at the different scales. | |
signalDiff | The differential operator applied to the signal at the different scales. | |
indexes | The indexes of the differential operator maxima at the different scales. |
Implements Detector.
Definition at line 37 of file CurvatureDetector.cpp.
unsigned int CurvatureDetector::detect | ( | const LaserReading & | reading, | |
std::vector< InterestPoint * > & | points, | |||
Graph & | graph, | |||
std::vector< std::vector< Point2D > > & | operatorA, | |||
std::vector< std::vector< double > > & | signalDiff, | |||
std::vector< std::vector< unsigned int > > & | indexes | |||
) | const [virtual] |
Detects the interesting points given the laser reading. It also returns the signals used for the computation.
reading | The laser reading. | |
points | The detected interest points. | |
graph | The graph approximation for the geodesic coordinate. | |
operatorA | The result of the smoothing operator on the geodesic coordinate at the different scales.. | |
signalDiff | The exponential dump applied to the smoothing operator at the different scales. | |
indexes | The indexes of the differential operator maxima at the different scales. |
Definition at line 24 of file CurvatureDetector.cpp.
unsigned int CurvatureDetector::detect | ( | const LaserReading & | reading, | |
std::vector< InterestPoint * > & | points | |||
) | const [virtual] |
Detects the interesting points given the laser reading.
reading | The laser reading. | |
points | The detected interest points. |
Implements Detector.
Definition at line 15 of file CurvatureDetector.cpp.
double CurvatureDetector::getBaseSigma | ( | ) | const [inline] |
Gets the standard deviation of the initial scale
Definition at line 145 of file CurvatureDetector.h.
unsigned int CurvatureDetector::getDmst | ( | ) | const [inline] |
Gets the number of minimum spanning trees
Definition at line 137 of file CurvatureDetector.h.
const PeakFinder* CurvatureDetector::getPeakFinder | ( | ) | const [inline] |
Gets the actual peak finder
Definition at line 153 of file CurvatureDetector.h.
unsigned int CurvatureDetector::getScaleNumber | ( | ) | const [inline] |
Gets the number of scales
Definition at line 133 of file CurvatureDetector.h.
const std::vector<double>& CurvatureDetector::getScales | ( | ) | const [inline] |
Gets the actual scales
Definition at line 141 of file CurvatureDetector.h.
double CurvatureDetector::getSigmaStep | ( | ) | const [inline] |
Gets the sigma increment step
Definition at line 149 of file CurvatureDetector.h.
bool CurvatureDetector::getUseMaxRange | ( | ) | [inline] |
Gets the "use the max range" flag.
Definition at line 157 of file CurvatureDetector.h.
void CurvatureDetector::setBaseSigma | ( | double | sigma | ) | [inline] |
Sets the standard deviation of the initial scale
Definition at line 117 of file CurvatureDetector.h.
void CurvatureDetector::setDmst | ( | unsigned int | dmst | ) | [inline] |
Sets the number of minimum spanning tree
Definition at line 113 of file CurvatureDetector.h.
void CurvatureDetector::setPeakFinder | ( | const PeakFinder * | peak | ) | [inline] |
Sets the peak finder
Definition at line 125 of file CurvatureDetector.h.
void CurvatureDetector::setScaleNumber | ( | unsigned int | scales | ) | [inline] |
Sets the number of scales
Definition at line 109 of file CurvatureDetector.h.
void CurvatureDetector::setSigmaStep | ( | double | step | ) | [inline] |
Sets the scale increment at each new scale
Definition at line 121 of file CurvatureDetector.h.
void CurvatureDetector::setUseMaxRange | ( | bool | use | ) | [inline] |
Sets the "use max range" flag. The flag enable or disable the use of max range readings.
Definition at line 129 of file CurvatureDetector.h.
double CurvatureDetector::m_baseSigma [protected] |
The standard deviation of the smoothing kernel for the initial scale ( in the paper).
Definition at line 173 of file CurvatureDetector.h.
unsigned int CurvatureDetector::m_dmst [protected] |
The number of minimum spanning tree to approximate the geodesic coordinate (see the paper for more details).
Definition at line 176 of file CurvatureDetector.h.
const PeakFinder* CurvatureDetector::m_peakFinder [protected] |
The peak finder used to detect maxima in the signal.
Definition at line 171 of file CurvatureDetector.h.
unsigned int CurvatureDetector::m_scaleNumber [protected] |
The numebr of scales
Definition at line 172 of file CurvatureDetector.h.
std::vector<double> CurvatureDetector::m_scales [protected] |
The precomputed scales for the smoothing operators. It is provided for efficiency issues.
Definition at line 177 of file CurvatureDetector.h.
double CurvatureDetector::m_sigmaStep [protected] |
The scale increment at every new scale ( in the paper). The standard deviation of the kernel at scale is
Definition at line 174 of file CurvatureDetector.h.
bool CurvatureDetector::m_useMaxRange [protected] |
The "use max range" flag. The flag enable or disable the use of max range readings.
Definition at line 175 of file CurvatureDetector.h.