isl-org / isl-org/Open3D

Add nearest point to voxel centroid/center as reduction option for PointCloud::VoxelDownSample

Open
#6,807 0 comments 0 reactions 0 assignees View on GitHub
feature request
Dominant language
C++
Stars
14k
Forks
2.6k
Avg merge
5d 18h
Merged PRs (30d)
6

Description

### Checklist

- [X] I have searched for [similar issues](https://github.com/isl-org/Open3D/issues).
- [X] For Python issues, I have tested with the [latest development wheel](https://www.open3d.org/docs/latest/getting_started.html#development-version-pip).
- [X] I have checked the [release documentation](https://www.open3d.org/docs/release/) and the [latest documentation](https://www.open3d.org/docs/latest/) (for `main` branch).

### Proposed new feature or change

Hi,

We're using extensively Voxel downsampling with nearest point to the voxel centroid and/or center, like exposed by PDAL:
- https://pdal.io/en/2.6.0/stages/filters.voxelcentroidnearestneighbor.html
- https://pdal.io/en/2.6.0/stages/filters.voxelcenternearestneighbor.html

This way remaining points are original points from the source and we can use this method as a _non-deforming spatial subsampling_ (only the nearest point of the voxel center/centroid within the voxel radius is retained)

CloudCompare is also exposing this method as "Spatial subsampling".
- https://www.cloudcompare.org/doc/wiki/index.php?title=Edit%5CSubsample

### References

https://github.com/PDAL/PDAL/blob/master/filters/VoxelCentroidNearestNeighborFilter.cpp
https://github.com/PDAL/PDAL/blob/master/filters/VoxelCenterNearestNeighborFilter.cpp
https://github.com/CloudCompare/CCCoreLib/blob/master/src/CloudSamplingTools.cpp#L241

### Additional information

_No response_

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.