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.