title: Downsampling point clouds to specific number of points while retaining shape
body: <p>Environment: Python-PCL, WIndows 10, Python 3.6</p>
  
  <p>I need to downsample point clouds to a specific number of points. These point clouds vary in size and hence I am stuck. From going through documentation, I understand there are only 
  <code>VoxelGrid</code>, <code>ConditionalOutlierRemoval</code> ,<code>StatisticalOutlierRemoval</code> and <code>RadiusOutlierRemoval</code>   are the options available. </p>
  
  <p>In VoxelGrid, the leaf size doesnt guarantee the number of points, Radius removal doesnt help in retaining the shape, and statistical outlier mostly helps in removing noise. </p>
  
  <p>Is there any solution to this? It is possible to use <code>numpy.random.choice()</code>and hoping for a miracle? </p>
  
  <p>EDIT: <code>numpy.random.choice</code> works but only if you don't care about the geometric shape of your point cloud, which I do. Anyway to use VoxelGrid dynamically? </p>