HoughSpace3D is a 3D voting space. Cast votes can be interpolated in order to better deal with approximations introduced by bin quantization. A weight can also be associated with each vote. More...
#include <hough_3d.h>
Public Member Functions | |
double | findMaxima (double min_threshold, std::vector< double > &maxima_values, std::vector< std::vector< int > > &maxima_voter_ids) |
Find the bins with most votes. | |
EIGEN_MAKE_ALIGNED_OPERATOR_NEW | HoughSpace3D (const Eigen::Vector3d &min_coord, const Eigen::Vector3d &bin_size, const Eigen::Vector3d &max_coord) |
Constructor. | |
void | reset () |
Reset all cast votes. | |
int | vote (const Eigen::Vector3d &single_vote_coord, double weight, int voter_id) |
Casting a vote for a given position in the Hough space. | |
int | voteInt (const Eigen::Vector3d &single_vote_coord, double weight, int voter_id) |
Vote for a given position in the 3D space. The weight is interpolated between the bin pointed by single_vote_coord and its neighbors. | |
Protected Attributes | |
Eigen::Vector3i | bin_count_ |
Number of bins for each dimension. | |
Eigen::Vector3d | bin_size_ |
Size of each bin in the Hough Space. | |
std::vector< double > | hough_space_ |
The Hough Space. | |
Eigen::Vector3d | min_coord_ |
Minimum coordinate in the Hough Space. | |
int | partial_bin_products_ [4] |
Used to access hough_space_ as if it was a matrix. | |
int | total_bins_count_ |
Total number of bins in the Hough Space. | |
boost::unordered_map< int, std::vector< int > > | voter_ids_ |
List of voters for each bin. |
HoughSpace3D is a 3D voting space. Cast votes can be interpolated in order to better deal with approximations introduced by bin quantization. A weight can also be associated with each vote.
Definition at line 54 of file hough_3d.h.
EIGEN_MAKE_ALIGNED_OPERATOR_NEW pcl::recognition::HoughSpace3D::HoughSpace3D | ( | const Eigen::Vector3d & | min_coord, |
const Eigen::Vector3d & | bin_size, | ||
const Eigen::Vector3d & | max_coord | ||
) |
Constructor.
[in] | min_coord | minimum (x,y,z) coordinates of the Hough space |
[in] | bin_size | size of each bing of the Hough space. |
[in] | max_coord | maximum (x,y,z) coordinates of the Hough space. |
double pcl::recognition::HoughSpace3D::findMaxima | ( | double | min_threshold, |
std::vector< double > & | maxima_values, | ||
std::vector< std::vector< int > > & | maxima_voter_ids | ||
) |
Find the bins with most votes.
[in] | min_threshold | the minimum number of votes to be included in a bin in order to have its value returned. If set to a value between -1 and 0 the Hough space maximum_vote is found and the returned values are all the votes greater than -min_threshold * maximum_vote. |
[out] | maxima_values | the list of Hough Space bin values greater than min_threshold. |
[out] | maxima_voter_ids | for each value returned, a list of the voter ids who cast a vote in that position. |
Definition at line 207 of file hough_3d.cpp.
Reset all cast votes.
Definition at line 72 of file hough_3d.cpp.
int pcl::recognition::HoughSpace3D::vote | ( | const Eigen::Vector3d & | single_vote_coord, |
double | weight, | ||
int | voter_id | ||
) |
Casting a vote for a given position in the Hough space.
[in] | single_vote_coord | coordinates of the vote being cast (in absolute coordinates) |
[in] | weight | weight associated with the vote. |
[in] | voter_id | the numeric id of the voter. Useful to trace back the voting correspondence, if the vote is returned by findMaxima as part of a maximum of the Hough Space. |
Definition at line 82 of file hough_3d.cpp.
int pcl::recognition::HoughSpace3D::voteInt | ( | const Eigen::Vector3d & | single_vote_coord, |
double | weight, | ||
int | voter_id | ||
) |
Vote for a given position in the 3D space. The weight is interpolated between the bin pointed by single_vote_coord and its neighbors.
[in] | single_vote_coord | coordinates of the vote being cast. |
[in] | weight | weight associated with the vote. |
[in] | voter_id | the numeric id of the voter. Useful to trace back the voting correspondence, if the vote is returned by findMaxima as a part of a maximum of the Hough Space. |
Definition at line 107 of file hough_3d.cpp.
Eigen::Vector3i pcl::recognition::HoughSpace3D::bin_count_ [protected] |
Number of bins for each dimension.
Definition at line 113 of file hough_3d.h.
Eigen::Vector3d pcl::recognition::HoughSpace3D::bin_size_ [protected] |
Size of each bin in the Hough Space.
Definition at line 110 of file hough_3d.h.
std::vector<double> pcl::recognition::HoughSpace3D::hough_space_ [protected] |
The Hough Space.
Definition at line 122 of file hough_3d.h.
Eigen::Vector3d pcl::recognition::HoughSpace3D::min_coord_ [protected] |
Minimum coordinate in the Hough Space.
Definition at line 107 of file hough_3d.h.
int pcl::recognition::HoughSpace3D::partial_bin_products_[4] [protected] |
Used to access hough_space_ as if it was a matrix.
Definition at line 116 of file hough_3d.h.
int pcl::recognition::HoughSpace3D::total_bins_count_ [protected] |
Total number of bins in the Hough Space.
Definition at line 119 of file hough_3d.h.
boost::unordered_map<int, std::vector<int> > pcl::recognition::HoughSpace3D::voter_ids_ [protected] |
List of voters for each bin.
Definition at line 126 of file hough_3d.h.