2
votes

Currently I try to compute PFH descriptors for ISS keypoints. I perform the following steps:

(1) Detect keypoints with pcl::ISSKeypoint3D (2) Estimate normals of the new keypoint cloud from (1) with pcl::NormalEstimation (3) Estimate PFH for the keypoints and the normals from (2) with pcl::PFHEstimation

To my understanding, the PFH estimation takes k neighbors into account and therefore has a complexity of O(n*k^2), where n denotes the number of keypoints. However, I only pass a cloud consisting of the keypoints itself to the estimator in (3).

So my question is: How can i retrieve the k neighbors for each ISS keypoint?

1

1 Answers

0
votes

You have to put original normal as input.

So, there are three items that should be set.

setinputcloud(filtered one for vertices) //iss keypoints

setinputnormals(non-filtered one for normals) //original normals using original vertices

setSearchSurface(non-filtered one for vetices) // original vertices

You can not use normal of keypoints and original vertices at the same time.

PCL will show you some error.

follow case will show you error.

1.

setinputcloud(filtered one for vertices) //iss keypoints

setinputnormals(filtered one for normals) //recomputed normals using filtered vertices

setSearchSurface(non-filtered one for vetices) // original vertices

2.

setinputcloud(filtered one for vertices) //iss keypoints

setSearchSurface(non-filtered one for vetices) // original vertices