pcdenoise: some questions
13 views (last 30 days)
Show older comments
Man, for such a simple heuristic, pcdenoise does have some questions:
1) Are self-distances included in the k nearest neighbor distances?
2) Can the threshold parameter be negative or zero? As described in the reference, it seems that the threshold parameter shouldn't really be allowed to be negative or zero, but Matlab doesn't seem to mind - it only wants a scalar.
If I take my point cloud and calculate d50 (the distances to the 50 nearest neighbors), then find the global mean and std of that distribution, I do not get the same number of inliers and outliers that pcdenoise returns, for a threshold value of 0.1. I realize the threshold is actually a multiplier on the global_std, which then yields a number that is added to and subtracted from the global_mean in order to yield a range of dknn values; the inliers are those points whose dknn values are within that dknn range, and vice-versa for the outliers.
Thanks for any help
3 Comments
Answers (1)
Vineet Joshi
on 8 Dec 2021
Hi
For Question 2, please find the explanation below.
The threshold is parameter is defined as follows as given in the documentation:
A point is considered to be an outlier if the average distance to its k-nearest neighbors is above the specified threshold.
Clearly if you put a negative threshold, no point will satify the above criteria and you will get an empty set.
This can be seen by running the code given in the function documentation and keeping the threshold as negative.
Hope this helps.
Thanks
See Also
Categories
Find more on Point Cloud Processing in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!