39 #include <pcl/recognition/boost.h>
42 #include <pcl/recognition/hv/hypotheses_verification.h>
43 #include <boost/graph/adjacency_list.hpp>
55 template<
typename ModelT,
typename SceneT>
66 float conflict_threshold_size_;
67 float penalty_threshold_;
68 float support_threshold_;
70 class RecognitionModel
73 std::vector<int> explained_;
80 using RecognitionModelPtr = std::shared_ptr<RecognitionModel>;
82 std::vector<int> explained_by_RM_;
83 std::vector<RecognitionModelPtr> recognition_models_;
84 std::vector<std::vector<RecognitionModelPtr>> points_explained_by_rm_;
85 std::map<int, RecognitionModelPtr> graph_id_model_map_;
87 using Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS, RecognitionModelPtr>;
88 Graph conflict_graph_;
91 void buildConflictGraph();
93 void nonMaximaSuppresion();
99 support_threshold_ = 0.1f;
100 penalty_threshold_ = 0.1f;
101 conflict_threshold_size_ = 0.02f;
105 conflict_threshold_size_ = t;
109 support_threshold_ = t;
113 penalty_threshold_ = t;
118 void verify()
override;
122 #ifdef PCL_NO_PRECOMPILE
123 #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
Define standard C methods and C++ classes that are common to all methods.
Defines all the PCL and non-PCL macros used.