Point Cloud Library (PCL)
1.7.0
|
00001 #ifndef PCL_TRACKING_APPROX_NEAREST_PAIR_POINT_CLOUD_COHERENCE_H_ 00002 #define PCL_TRACKING_APPROX_NEAREST_PAIR_POINT_CLOUD_COHERENCE_H_ 00003 00004 #include <pcl/search/search.h> 00005 #include <pcl/search/octree.h> 00006 #include <pcl/tracking/nearest_pair_point_cloud_coherence.h> 00007 namespace pcl 00008 { 00009 namespace tracking 00010 { 00011 /** \brief @b ApproxNearestPairPointCloudCoherence computes coherence between two pointclouds using the 00012 approximate nearest point pairs. 00013 * \author Ryohei Ueda 00014 * \ingroup tracking 00015 */ 00016 template <typename PointInT> 00017 class ApproxNearestPairPointCloudCoherence: public NearestPairPointCloudCoherence<PointInT> 00018 { 00019 public: 00020 typedef typename NearestPairPointCloudCoherence<PointInT>::PointCoherencePtr PointCoherencePtr; 00021 typedef typename NearestPairPointCloudCoherence<PointInT>::PointCloudInConstPtr PointCloudInConstPtr; 00022 //using NearestPairPointCloudCoherence<PointInT>::search_; 00023 using NearestPairPointCloudCoherence<PointInT>::maximum_distance_; 00024 using NearestPairPointCloudCoherence<PointInT>::target_input_; 00025 using NearestPairPointCloudCoherence<PointInT>::point_coherences_; 00026 using NearestPairPointCloudCoherence<PointInT>::coherence_name_; 00027 using NearestPairPointCloudCoherence<PointInT>::new_target_; 00028 using NearestPairPointCloudCoherence<PointInT>::getClassName; 00029 00030 /** \brief empty constructor */ 00031 ApproxNearestPairPointCloudCoherence () : 00032 NearestPairPointCloudCoherence<PointInT> (), search_ () 00033 { 00034 coherence_name_ = "ApproxNearestPairPointCloudCoherence"; 00035 } 00036 00037 protected: 00038 /** \brief This method should get called before starting the actual computation. */ 00039 virtual bool initCompute (); 00040 00041 /** \brief compute the nearest pairs and compute coherence using point_coherences_ */ 00042 virtual void 00043 computeCoherence (const PointCloudInConstPtr &cloud, const IndicesConstPtr &indices, float &w_j); 00044 00045 typename boost::shared_ptr<pcl::search::Octree<PointInT> > search_; 00046 }; 00047 } 00048 } 00049 00050 #ifdef PCL_NO_PRECOMPILE 00051 #include <pcl/tracking/impl/approx_nearest_pair_point_cloud_coherence.hpp> 00052 #endif 00053 00054 #endif 00055