I think anyone who has tried point cloud videogrammetry knew this was inevitable. Now that my primary capture example is (at least at 8fps) working, in addition to trying to optimize that, it’s time to start looking into how to render all this better. And for that, Point Cloud Library (PCL) is appears to be the definitive library.

The best part of PCL is that, for everything on my todo list, it already has some form of that functionality. Iterative closest point (registration), noise cleanup (filters), reconstruction (surface), and even an alternative to libfreenect2 if needed (io) - this library goes from capture to refined display, with alternative uses for everything too. While it seems (like most depth camera libraries) to be primarily aimed at Robot Operating System (ROS), PCL actually has a broad enough range of computer vision support to be the best tool right now for general videogrammetry as well. It should be the basis of most of my future work, and I’m especially excited about that given that MeshLab seems to be the best alternative.

There are many MeshLab videos on Youtube! But they are all bookended with the Sanford and Son theme…

MeshLab

Previously I was intending to use MeshLab for my surface reconstruction since it is better documented around the web and in simpler terms too, so I already knew that it could be used for what I needed. Diving into PCL’s documentation though has proved incredibly rewarding. By comparison: PCL is a native C++ library to work with, where MeshLab is a GUI application - so keeping all my code in C++ instead of sending it in and out of a separate program entirely is a big upgrade. MeshLab’s projective texture mapping (applying photos to 3d models to make textures via reprojection) is its biggest strength then over PCL, but even that can be accomplished by PCL it appears. Hopefully, I won’t even need to use MeshLab!

Setup

So between more refined capture techniques then and improving display visuals or representation, PCL looks like it will be contributing to all sides of this project. For now, I’m just trying to get it compiling in VS15 since official prebuilt libraries only support up through VS10. (although I am debating using alternatives) That means I don’t have much to say on working with it yet since I’m still just setting up, and recovering from finals a bit too, but expect to see a lot more on this library in the near future! It looks to be the swiss army knife of working with point clouds.