All problems
Voxel Downsample
Problem
Downsample a point cloud by voxel grid averaging.
Group points by (floor(x / size), floor(y / size), floor(z / size)) and return each occupied voxel's centroid as [x, y, z] rounded to 4 decimal places, ordered by ascending voxel coordinates. An empty cloud returns [].
Test cases
case 1
in: [[[0.1,0.1,0.1],[0.2,0.3,0.2],[1.5,1.5,1.5]],1]
expected: [[0.15,0.2,0.15],[1.5,1.5,1.5]]
case 2
in: [[[1,1,1],[1.2,1.4,1.6],[1.9,1.1,1.3]],2]
expected: [[1.3667,1.1667,1.3]]
case 3
in: [[],1]
expected: []
case 4
in: [[[-0.5,-0.5,-0.5],[0.5,0.5,0.5]],1]
expected: [[-0.5,-0.5,-0.5],[0.5,0.5,0.5]]
Starter codePython
def voxel_downsample(points, voxel_size):
# Your code here
pass4 test cases · run your code against them in the editor