40 #include <pcl/recognition/hv/hypotheses_verification.h>
41 #include <boost/graph/adjacency_list.hpp>
54 template<
typename ModelT,
typename SceneT>
65 float conflict_threshold_size_;
66 float penalty_threshold_;
67 float support_threshold_;
69 class RecognitionModel
72 std::vector<int> explained_;
79 using RecognitionModelPtr = std::shared_ptr<RecognitionModel>;
81 std::vector<int> explained_by_RM_;
82 std::vector<RecognitionModelPtr> recognition_models_;
83 std::vector<std::vector<RecognitionModelPtr>> points_explained_by_rm_;
84 std::map<int, RecognitionModelPtr> graph_id_model_map_;
86 using Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS, RecognitionModelPtr>;
87 Graph conflict_graph_;
90 void buildConflictGraph();
92 void nonMaximaSuppresion();
98 support_threshold_ = 0.1f;
99 penalty_threshold_ = 0.1f;
100 conflict_threshold_size_ = 0.02f;
104 conflict_threshold_size_ = t;
108 support_threshold_ = t;
112 penalty_threshold_ = t;
117 void verify()
override;
121 #ifdef PCL_NO_PRECOMPILE
122 #include <pcl/recognition/impl/hv/hv_papazov.hpp>
Abstract class for hypotheses verification methods.
A hypothesis verification method proposed in "An Efficient RANSAC for 3D Object Recognition in Noisy ...
void setConflictThreshold(float t)
void setSupportThreshold(float t)
void setPenaltyThreshold(float t)
shared_ptr< PointCloud< PointT > > Ptr
Defines all the PCL and non-PCL macros used.