Point Cloud Library (PCL)  1.14.1-dev
List of all members | Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
pcl::keypoints::agast::AbstractAgastDetector Class Referenceabstract

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

#include <pcl/keypoints/agast_2d.h>

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

Classes

struct  CompareScoreIndex
 Score index comparator. More...
 
struct  ScoreIndex
 Structure holding an index and the associated keypoint score. More...
 

Public Types

using Ptr = shared_ptr< AbstractAgastDetector >
 
using ConstPtr = shared_ptr< const AbstractAgastDetector >
 

Public Member Functions

 AbstractAgastDetector (const std::size_t width, const std::size_t height, const double threshold, const double bmax)
 Constructor. More...
 
virtual ~AbstractAgastDetector ()=default
 Destructor. More...
 
void detectKeypoints (const std::vector< unsigned char > &intensity_data, pcl::PointCloud< pcl::PointUV > &output) const
 Detects corner points. More...
 
void detectKeypoints (const std::vector< float > &intensity_data, pcl::PointCloud< pcl::PointUV > &output) const
 Detects corner points. More...
 
void applyNonMaxSuppression (const std::vector< unsigned char > &intensity_data, const pcl::PointCloud< pcl::PointUV > &input, pcl::PointCloud< pcl::PointUV > &output)
 Applies non-max-suppression. More...
 
void applyNonMaxSuppression (const std::vector< float > &intensity_data, const pcl::PointCloud< pcl::PointUV > &input, pcl::PointCloud< pcl::PointUV > &output)
 Applies non-max-suppression. More...
 
virtual int computeCornerScore (const unsigned char *im) const =0
 Computes corner score. More...
 
virtual int computeCornerScore (const float *im) const =0
 Computes corner score. More...
 
void setThreshold (const double threshold)
 Sets the threshold for corner detection. More...
 
double getThreshold ()
 Get the threshold for corner detection, as set by the user. More...
 
void setMaxKeypoints (const unsigned int nr_max_keypoints)
 Sets the maximum number of keypoints to return. More...
 
unsigned int getMaxKeypoints ()
 Get the maximum number of keypoints to return, as set by the user. More...
 
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. More...
 
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. More...
 

Protected Member Functions

virtual void initPattern ()=0
 Initializes the sample pattern. More...
 
void applyNonMaxSuppression (const pcl::PointCloud< pcl::PointUV > &input, const std::vector< ScoreIndex > &scores, pcl::PointCloud< pcl::PointUV > &output)
 Non-max-suppression helper method. More...
 
void computeCornerScores (const unsigned char *im, const std::vector< pcl::PointUV, Eigen::aligned_allocator< pcl::PointUV > > &corners_all, std::vector< ScoreIndex > &scores) const
 Computes corner scores for the specified points. More...
 
void computeCornerScores (const float *im, const std::vector< pcl::PointUV, Eigen::aligned_allocator< pcl::PointUV > > &corners_all, std::vector< ScoreIndex > &scores) const
 Computes corner scores for the specified points. More...
 

Protected Attributes

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

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 64 of file agast_2d.h.

Member Typedef Documentation

◆ ConstPtr

Definition at line 68 of file agast_2d.h.

◆ Ptr

Definition at line 67 of file agast_2d.h.

Constructor & Destructor Documentation

◆ AbstractAgastDetector()

pcl::keypoints::agast::AbstractAgastDetector::AbstractAgastDetector ( const std::size_t  width,
const std::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 76 of file agast_2d.h.

◆ ~AbstractAgastDetector()

virtual pcl::keypoints::agast::AbstractAgastDetector::~AbstractAgastDetector ( )
virtualdefault

Destructor.

Member Function Documentation

◆ applyNonMaxSuppression() [1/3]

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-suppression

◆ applyNonMaxSuppression() [2/3]

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-suppression

◆ applyNonMaxSuppression() [3/3]

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-suppression

◆ computeCornerScore() [1/2]

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

Implemented in pcl::keypoints::agast::OastDetector9_16, pcl::keypoints::agast::AgastDetector5_8, and pcl::keypoints::agast::AgastDetector7_12s.

◆ computeCornerScore() [2/2]

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.

◆ computeCornerScores() [1/2]

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 
) const
protected

Computes corner scores for the specified points.

Parameters
im
corners_all
scores

◆ computeCornerScores() [2/2]

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 
) const
protected

Computes corner scores for the specified points.

Parameters
im
corners_all
scores

◆ detect() [1/2]

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

Implemented in pcl::keypoints::agast::OastDetector9_16, pcl::keypoints::agast::AgastDetector5_8, and pcl::keypoints::agast::AgastDetector7_12s.

◆ detect() [2/2]

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.

◆ detectKeypoints() [1/2]

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

Detects corner points.

Parameters
intensity_data
output

◆ detectKeypoints() [2/2]

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

Detects corner points.

Parameters
intensity_data
output

◆ getMaxKeypoints()

unsigned int pcl::keypoints::agast::AbstractAgastDetector::getMaxKeypoints ( )
inline

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

Definition at line 166 of file agast_2d.h.

◆ getThreshold()

double pcl::keypoints::agast::AbstractAgastDetector::getThreshold ( )
inline

Get the threshold for corner detection, as set by the user.

Definition at line 149 of file agast_2d.h.

◆ initPattern()

virtual void pcl::keypoints::agast::AbstractAgastDetector::initPattern ( )
protectedpure virtual

◆ setMaxKeypoints()

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 159 of file agast_2d.h.

◆ setThreshold()

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 142 of file agast_2d.h.

Member Data Documentation

◆ bmax_

double pcl::keypoints::agast::AbstractAgastDetector::bmax_
protected

Max image value.

Definition at line 255 of file agast_2d.h.

◆ height_

std::size_t pcl::keypoints::agast::AbstractAgastDetector::height_
protected

Height of the image to process.

Definition at line 246 of file agast_2d.h.

◆ nr_max_keypoints_

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.

◆ threshold_

double pcl::keypoints::agast::AbstractAgastDetector::threshold_
protected

Threshold for corner detection.

Definition at line 249 of file agast_2d.h.

◆ width_

std::size_t pcl::keypoints::agast::AbstractAgastDetector::width_
protected

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: