Point Cloud Library (PCL)  1.7.0
Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
pcl::keypoints::agast::AbstractAgastDetector Class Reference

Abstract detector class for AGAST corner point detectors. More...

#include <pcl/keypoints/agast_2d.h>

+ Inheritance diagram for pcl::keypoints::agast::AbstractAgastDetector:

List of all members.

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
< AbstractAgastDetector
Ptr
typedef boost::shared_ptr
< const AbstractAgastDetector
ConstPtr

Public Member Functions

 AbstractAgastDetector (const size_t width, const size_t height, const double threshold, const double bmax)
 Constructor.
virtual ~AbstractAgastDetector ()
 Destructor.
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.
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.
void setThreshold (const double threshold)
 Sets the threshold for corner detection.
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.
unsigned int getMaxKeypoints ()
 Get the maximum nuber of keypoints to return, as set by the user.
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.

Protected Member Functions

virtual void initPattern ()=0
 Initializes the sample pattern.
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.

Protected Attributes

size_t width_
 Width of the image to process.
size_t height_
 Height of the image to process.
double threshold_
 Threshold for corner detection.
unsigned int nr_max_keypoints_
 The maximum number of keypoints to return.
double bmax_
 Max image value.

Detailed Description

Abstract detector class for AGAST corner point detectors.

Adapted from the C++ implementation of Elmar Mair (http://www6.in.tum.de/Main/ResearchAgast).

Author:
Stefan Holzer

Definition at line 62 of file agast_2d.h.


Member Typedef Documentation


Constructor & Destructor Documentation

pcl::keypoints::agast::AbstractAgastDetector::AbstractAgastDetector ( const size_t  width,
const size_t  height,
const double  threshold,
const double  bmax 
) [inline]

Constructor.

Parameters:
[in]widththe width of the image to process
[in]heightthe height of the image to process
[in]thresholdthe corner detection threshold
[in]bmaxthe max image value (default: 255)

Definition at line 74 of file agast_2d.h.

Destructor.

Definition at line 86 of file agast_2d.h.


Member Function Documentation

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.

Parameters:
[in]intensity_datathe image data
[in]inputthe keypoint positions
[out]outputthe resultant keypoints after non-max-supression
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.

Parameters:
[in]intensity_datathe image data
[in]inputthe keypoint positions
[out]outputthe resultant keypoints after non-max-supression
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.

Parameters:
[in]inputthe keypoint positions
[in]scoresthe keypoint scores computed on the image data
[out]outputthe resultant keypoints after non-max-supression
virtual int pcl::keypoints::agast::AbstractAgastDetector::computeCornerScore ( const unsigned char *  im) const [pure virtual]

Computes corner score.

Parameters:
[in]imthe 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.

Parameters:
[in]imthe 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.

Parameters:
im
corners_all
scores
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.

Parameters:
im
corners_all
scores
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.

Parameters:
[in]imthe image to detect keypoints in
[out]corners_allthe 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.

Parameters:
[in]imthe image to detect keypoints in
[out]corners_allthe 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.

Parameters:
intensity_data
output
void pcl::keypoints::agast::AbstractAgastDetector::detectKeypoints ( const std::vector< float > &  intensity_data,
pcl::PointCloud< pcl::PointUV > &  output 
)

Detects corner points.

Parameters:
intensity_data
output

Get the maximum nuber of keypoints to return, as set by the user.

Definition at line 165 of file agast_2d.h.

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]
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.

Parameters:
[in]nr_max_keypointsset 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.

Parameters:
[in]thresholdthe threshold used for corner detection.

Definition at line 141 of file agast_2d.h.


Member Data Documentation

Max image value.

Definition at line 255 of file agast_2d.h.

Height of the image to process.

Definition at line 246 of file agast_2d.h.

The maximum number of keypoints to return.

Definition at line 252 of file agast_2d.h.

Threshold for corner detection.

Definition at line 249 of file agast_2d.h.

Width of the image to process.

Definition at line 244 of file agast_2d.h.


The documentation for this class was generated from the following file: