Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Noise Filter Neighbourhood Size #58

Closed
seiband opened this issue Dec 4, 2020 · 2 comments
Closed

Noise Filter Neighbourhood Size #58

seiband opened this issue Dec 4, 2020 · 2 comments

Comments

@seiband
Copy link

seiband commented Dec 4, 2020

When using the noise filter on point clouds there is a strange behaviour. Although setting it to KNN and using only 6 points it takes much longer than the SOR filter. It seems like the KNN methods depends on the kernel size and the other way around.

Within the code of the noise filter in CloudSamplingTools.cpp I found these lines:

	if (useKnn)
		octreeLevel = octree->findBestLevelForAGivenNeighbourhoodSizeExtraction(kernelRadius);
	else
		octreeLevel = octree->findBestLevelForAGivenPopulationPerCell(knn);

Shouldn't this be the other way around?

How to reproduce

  1. Select a cloud
  2. Go to 'Clean\Noise filter'
  3. Click on 'Radius (Sphere)'
  4. Input '6' as the kernel size
  5. Select 'Points (kNN)'
  6. Input '6' as the number of neighbours
  7. Start filter

Expected behaviour

The processing shouldn't take much longer than the SOR filter. In my case for 20.000 points it almost took 10 seconds compared to the SOR filter (less than 1 second).

Your environment

  • CCCoreLib Version: 2.11.1
  • OS & Version: Windows 10
  • Qt Version: QT 5.15
@dgirardeau
Copy link
Member

Nice catch! This is clearly a mistake.

6ef377f should fix this!

@dgirardeau
Copy link
Member

The 2.12.alha version online is now updated!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants