1 #ifndef PCL_TRACKING_IMPL_COHERENCE_H_
2 #define PCL_TRACKING_IMPL_COHERENCE_H_
4 #include <pcl/console/print.h>
5 #include <pcl/tracking/coherence.h>
10 template <
typename Po
intInT>
14 return computeCoherence(source, target);
17 template <
typename Po
intInT>
22 for (std::size_t i = 0; i < point_coherences_.size(); i++) {
24 double d = std::log(coherence->compute(source, target));
34 template <
typename Po
intInT>
38 if (!target_input_ || target_input_->points.empty()) {
39 PCL_ERROR(
"[pcl::%s::compute] target_input_ is empty!\n", getClassName().c_str());
46 template <
typename Po
intInT>
53 PCL_ERROR(
"[pcl::%s::compute] Init failed.\n", getClassName().c_str());
56 computeCoherence(cloud, indices, w);
virtual bool initCompute()
This method should get called before starting the actual computation.
typename PointCloudIn::ConstPtr PointCloudInConstPtr
typename PointCoherence< PointInT >::Ptr PointCoherencePtr
double calcPointCoherence(PointInT &source, PointInT &target)
void compute(const PointCloudInConstPtr &cloud, const IndicesConstPtr &indices, float &w_i)
compute coherence between two pointclouds.
double compute(PointInT &source, PointInT &target)
compute coherence from the source point to the target point.
shared_ptr< const Indices > IndicesConstPtr