I have two point clouds (PCs): (i) PC-A (i.e. Reference PC or ground truth) and (ii) PC-B (i.e. Bare-Earth PC obtained through filtering)

I want to subtract PC-B from PC-A to calculate commission and omission errors. So, far I tried computing cloud to cloud distances in cloudcompare, and then filtering points that are not within 0.05m threshold distance. However, since the topography is high variable, the aforementioned method is giving a huge spatial variation. I suspect that cloud-to-cloud distance isn't very accurate.

Is there any tool (preferably opensource and not too complex) that I could use to achieve PC-B (-) PC-A?

  • Is PC-B derived from PC-A by running some algorithm? And are there the same number of points in each cloud? Have you considered generating a gridded raster for each PC-A and PC-B and then subtracting rasters using tools in QGIS or ArcMap?
    – Timbo284
    Commented May 8, 2017 at 20:38
  • PC-B (ground/bare-earth points filtered using a filtering algorithm) is a part of PC-A (ground/bare-earth truth). It might also contain some additional points corresponding to vegetation that are not in PC-A. Therefore, the number of points are not same in both. I know about Raster subtraction, but that does not give me the result in points, which I need for filter accuracy assessment.
    – asghar
    Commented May 8, 2017 at 21:09
  • I believe this is a problem for the Kabsch algorithm. en.wikipedia.org/wiki/Kabsch_algorithm There is a matlab implementation and a python implementation available.
    – Timbo284
    Commented May 8, 2017 at 21:37
  • Have you found a solution so far? I have the same problem. Actually, we are doing videogrammetry: filming with two synced cams, while just one moving object es really of interest. out of the two corresponding video frames, we can calculate a 3D point cloud. I tried to get rid of the other points within the clouds by a colour selection. with perfect contrast that works, but in everyday use, I think it would be less difficult if I can just subtract two PC. Neither do I want to calculate first a DEM or mesh (errors in between the two generated DEM) if not necessary. But I am open minded, to accep
    – nepomuck0
    Commented Oct 17, 2018 at 8:47

1 Answer 1


I believe what you are computing is called the "Hausdorff Distance." https://en.wikipedia.org/wiki/Hausdorff_distance

There are other libraries you might try such as http://vcg.isti.cnr.it/vcglib/

  • thanks for your answers @Timbo284, but distance computation isn't what I want. I just want to subtract PC-B from PC-A, just like raster subtraction. The only difference is I'm looking for a point cloud subtraction tool or algorithm.
    – asghar
    Commented May 8, 2017 at 23:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.