Abstract detector class for AGAST corner point detectors. More...
#include <agast_2d.h>
Classes | |
struct | CompareScoreIndex |
Score index comparator. More... | |
struct | ScoreIndex |
Structure holding an index and the associated keypoint score. More... | |
Public Types | |
typedef boost::shared_ptr < const AbstractAgastDetector > | ConstPtr |
typedef boost::shared_ptr < AbstractAgastDetector > | Ptr |
Public Member Functions | |
AbstractAgastDetector (const size_t width, const size_t height, const double threshold, const double bmax) | |
Constructor. | |
void | applyNonMaxSuppression (const std::vector< unsigned char > &intensity_data, const pcl::PointCloud< pcl::PointUV > &input, pcl::PointCloud< pcl::PointUV > &output) |
Applies non-max-suppression. | |
void | applyNonMaxSuppression (const std::vector< float > &intensity_data, const pcl::PointCloud< pcl::PointUV > &input, pcl::PointCloud< pcl::PointUV > &output) |
Applies non-max-suppression. | |
virtual int | computeCornerScore (const unsigned char *im) const =0 |
Computes corner score. | |
virtual int | computeCornerScore (const float *im) const =0 |
Computes corner score. | |
virtual void | detect (const unsigned char *im, std::vector< pcl::PointUV, Eigen::aligned_allocator< pcl::PointUV > > &corners_all) const =0 |
Detects points of interest (i.e., keypoints) in the given image. | |
virtual void | detect (const float *im, std::vector< pcl::PointUV, Eigen::aligned_allocator< pcl::PointUV > > &) const =0 |
Detects points of interest (i.e., keypoints) in the given image. | |
void | detectKeypoints (const std::vector< unsigned char > &intensity_data, pcl::PointCloud< pcl::PointUV > &output) |
Detects corner points. | |
void | detectKeypoints (const std::vector< float > &intensity_data, pcl::PointCloud< pcl::PointUV > &output) |
Detects corner points. | |
unsigned int | getMaxKeypoints () |
Get the maximum nuber of keypoints to return, as set by the user. | |
double | getThreshold () |
Get the threshold for corner detection, as set by the user. | |
void | setMaxKeypoints (const unsigned int nr_max_keypoints) |
Sets the maximum number of keypoints to return. The estimated keypoints are sorted by their internal score. | |
void | setThreshold (const double threshold) |
Sets the threshold for corner detection. | |
virtual | ~AbstractAgastDetector () |
Destructor. | |
Protected Member Functions | |
void | applyNonMaxSuppression (const pcl::PointCloud< pcl::PointUV > &input, const std::vector< ScoreIndex > &scores, pcl::PointCloud< pcl::PointUV > &output) |
Non-max-suppression helper method. | |
void | computeCornerScores (const unsigned char *im, const std::vector< pcl::PointUV, Eigen::aligned_allocator< pcl::PointUV > > &corners_all, std::vector< ScoreIndex > &scores) |
Computes corner scores for the specified points. | |
void | computeCornerScores (const float *im, const std::vector< pcl::PointUV, Eigen::aligned_allocator< pcl::PointUV > > &corners_all, std::vector< ScoreIndex > &scores) |
Computes corner scores for the specified points. | |
virtual void | initPattern ()=0 |
Initializes the sample pattern. | |
Protected Attributes | |
double | bmax_ |
Max image value. | |
size_t | height_ |
Height of the image to process. | |
unsigned int | nr_max_keypoints_ |
The maximum number of keypoints to return. | |
double | threshold_ |
Threshold for corner detection. | |
size_t | width_ |
Width of the image to process. |
Abstract detector class for AGAST corner point detectors.
Adapted from the C++ implementation of Elmar Mair (http://www6.in.tum.de/Main/ResearchAgast).
Definition at line 62 of file agast_2d.h.
typedef boost::shared_ptr<const AbstractAgastDetector> pcl::keypoints::agast::AbstractAgastDetector::ConstPtr |
Reimplemented in pcl::keypoints::agast::OastDetector9_16, pcl::keypoints::agast::AgastDetector5_8, and pcl::keypoints::agast::AgastDetector7_12s.
Definition at line 66 of file agast_2d.h.
typedef boost::shared_ptr<AbstractAgastDetector> pcl::keypoints::agast::AbstractAgastDetector::Ptr |
Reimplemented in pcl::keypoints::agast::OastDetector9_16, pcl::keypoints::agast::AgastDetector5_8, and pcl::keypoints::agast::AgastDetector7_12s.
Definition at line 65 of file agast_2d.h.
pcl::keypoints::agast::AbstractAgastDetector::AbstractAgastDetector | ( | const size_t | width, |
const size_t | height, | ||
const double | threshold, | ||
const double | bmax | ||
) | [inline] |
Constructor.
[in] | width | the width of the image to process |
[in] | height | the height of the image to process |
[in] | threshold | the corner detection threshold |
[in] | bmax | the max image value (default: 255) |
Definition at line 74 of file agast_2d.h.
virtual pcl::keypoints::agast::AbstractAgastDetector::~AbstractAgastDetector | ( | ) | [inline, virtual] |
Destructor.
Definition at line 86 of file agast_2d.h.
void pcl::keypoints::agast::AbstractAgastDetector::applyNonMaxSuppression | ( | const std::vector< unsigned char > & | intensity_data, |
const pcl::PointCloud< pcl::PointUV > & | input, | ||
pcl::PointCloud< pcl::PointUV > & | output | ||
) |
Applies non-max-suppression.
[in] | intensity_data | the image data |
[in] | input | the keypoint positions |
[out] | output | the resultant keypoints after non-max-supression |
Definition at line 245 of file agast_2d.cpp.
void pcl::keypoints::agast::AbstractAgastDetector::applyNonMaxSuppression | ( | const std::vector< float > & | intensity_data, |
const pcl::PointCloud< pcl::PointUV > & | input, | ||
pcl::PointCloud< pcl::PointUV > & | output | ||
) |
Applies non-max-suppression.
[in] | intensity_data | the image data |
[in] | input | the keypoint positions |
[out] | output | the resultant keypoints after non-max-supression |
Definition at line 273 of file agast_2d.cpp.
void pcl::keypoints::agast::AbstractAgastDetector::applyNonMaxSuppression | ( | const pcl::PointCloud< pcl::PointUV > & | input, |
const std::vector< ScoreIndex > & | scores, | ||
pcl::PointCloud< pcl::PointUV > & | output | ||
) | [protected] |
Non-max-suppression helper method.
[in] | input | the keypoint positions |
[in] | scores | the keypoint scores computed on the image data |
[out] | output | the resultant keypoints after non-max-supression |
Definition at line 104 of file agast_2d.cpp.
virtual int pcl::keypoints::agast::AbstractAgastDetector::computeCornerScore | ( | const unsigned char * | im | ) | const [pure virtual] |
Computes corner score.
[in] | im | the pixels to compute the score at |
Implemented in pcl::keypoints::agast::OastDetector9_16, pcl::keypoints::agast::AgastDetector5_8, and pcl::keypoints::agast::AgastDetector7_12s.
virtual int pcl::keypoints::agast::AbstractAgastDetector::computeCornerScore | ( | const float * | im | ) | const [pure virtual] |
Computes corner score.
[in] | im | the pixels to compute the score at |
[in] | bmax |
Implemented in pcl::keypoints::agast::OastDetector9_16, pcl::keypoints::agast::AgastDetector5_8, and pcl::keypoints::agast::AgastDetector7_12s.
void pcl::keypoints::agast::AbstractAgastDetector::computeCornerScores | ( | const unsigned char * | im, |
const std::vector< pcl::PointUV, Eigen::aligned_allocator< pcl::PointUV > > & | corners_all, | ||
std::vector< ScoreIndex > & | scores | ||
) | [protected] |
Computes corner scores for the specified points.
im | |
corners_all | |
scores |
Definition at line 301 of file agast_2d.cpp.
void pcl::keypoints::agast::AbstractAgastDetector::computeCornerScores | ( | const float * | im, |
const std::vector< pcl::PointUV, Eigen::aligned_allocator< pcl::PointUV > > & | corners_all, | ||
std::vector< ScoreIndex > & | scores | ||
) | [protected] |
Computes corner scores for the specified points.
im | |
corners_all | |
scores |
Definition at line 332 of file agast_2d.cpp.
virtual void pcl::keypoints::agast::AbstractAgastDetector::detect | ( | const unsigned char * | im, |
std::vector< pcl::PointUV, Eigen::aligned_allocator< pcl::PointUV > > & | corners_all | ||
) | const [pure virtual] |
Detects points of interest (i.e., keypoints) in the given image.
[in] | im | the image to detect keypoints in |
[out] | corners_all | the resultant set of keypoints detected |
Implemented in pcl::keypoints::agast::OastDetector9_16, pcl::keypoints::agast::AgastDetector5_8, and pcl::keypoints::agast::AgastDetector7_12s.
virtual void pcl::keypoints::agast::AbstractAgastDetector::detect | ( | const float * | im, |
std::vector< pcl::PointUV, Eigen::aligned_allocator< pcl::PointUV > > & | |||
) | const [pure virtual] |
Detects points of interest (i.e., keypoints) in the given image.
[in] | im | the image to detect keypoints in |
[out] | corners_all | the resultant set of keypoints detected |
Implemented in pcl::keypoints::agast::OastDetector9_16, pcl::keypoints::agast::AgastDetector5_8, and pcl::keypoints::agast::AgastDetector7_12s.
void pcl::keypoints::agast::AbstractAgastDetector::detectKeypoints | ( | const std::vector< unsigned char > & | intensity_data, |
pcl::PointCloud< pcl::PointUV > & | output | ||
) |
Detects corner points.
intensity_data | |
output |
Definition at line 80 of file agast_2d.cpp.
void pcl::keypoints::agast::AbstractAgastDetector::detectKeypoints | ( | const std::vector< float > & | intensity_data, |
pcl::PointCloud< pcl::PointUV > & | output | ||
) |
Detects corner points.
intensity_data | |
output |
Definition at line 92 of file agast_2d.cpp.
unsigned int pcl::keypoints::agast::AbstractAgastDetector::getMaxKeypoints | ( | ) | [inline] |
Get the maximum nuber of keypoints to return, as set by the user.
Definition at line 165 of file agast_2d.h.
double pcl::keypoints::agast::AbstractAgastDetector::getThreshold | ( | ) | [inline] |
Get the threshold for corner detection, as set by the user.
Definition at line 148 of file agast_2d.h.
virtual void pcl::keypoints::agast::AbstractAgastDetector::initPattern | ( | ) | [protected, pure virtual] |
Initializes the sample pattern.
Implemented in pcl::keypoints::agast::OastDetector9_16, pcl::keypoints::agast::AgastDetector5_8, and pcl::keypoints::agast::AgastDetector7_12s.
void pcl::keypoints::agast::AbstractAgastDetector::setMaxKeypoints | ( | const unsigned int | nr_max_keypoints | ) | [inline] |
Sets the maximum number of keypoints to return. The estimated keypoints are sorted by their internal score.
[in] | nr_max_keypoints | set the maximum number of keypoints to return |
Definition at line 158 of file agast_2d.h.
void pcl::keypoints::agast::AbstractAgastDetector::setThreshold | ( | const double | threshold | ) | [inline] |
Sets the threshold for corner detection.
[in] | threshold | the threshold used for corner detection. |
Definition at line 141 of file agast_2d.h.
double pcl::keypoints::agast::AbstractAgastDetector::bmax_ [protected] |
Max image value.
Definition at line 255 of file agast_2d.h.
size_t pcl::keypoints::agast::AbstractAgastDetector::height_ [protected] |
Height of the image to process.
Definition at line 246 of file agast_2d.h.
unsigned int pcl::keypoints::agast::AbstractAgastDetector::nr_max_keypoints_ [protected] |
The maximum number of keypoints to return.
Definition at line 252 of file agast_2d.h.
double pcl::keypoints::agast::AbstractAgastDetector::threshold_ [protected] |
Threshold for corner detection.
Definition at line 249 of file agast_2d.h.
size_t pcl::keypoints::agast::AbstractAgastDetector::width_ [protected] |
Width of the image to process.
Definition at line 244 of file agast_2d.h.