andrewod wrote:The snippet tool is good for chopping chunks out of the cloud but you need a better tool for clean up. In fact you really need some 3d functionality for cleanup.
A nice 3D selection tool would be pretty cool but coming up with a good UI might be a challenge.
I think there is quite a bit of room for improvement in the existing 2D segmentation tool to make it more efficient and user friendly. Right now all the extra clicks required to select points and transfer them to a new cloud make it impractical to use except, as andrewod notes, for chopping out a few big chunks. Consider the common case where scans were collected outdoors and you want to segment out all of the partially scanned pedestrians or vehicles. Doing this might require making hundreds of small individual selections involving thousands of clicks. I don't, however, want to segment my input cloud in to hundreds of separate clouds. I want to send the individual selections to a few segmented clouds, maybe a "pedestrians" cloud, a "vehicles" cloud, and a "junk" cloud, or maybe I just want everything to go to the "junk" cloud. With that in mind this is how I would redesign the segmentation tool.
First I would model it after the selection tools in Photoshop (or most other DCC applications). Instead of an extra button click to select inside or outside the 2D boundary every time a new boundary is drawn you should be able to set a global mode for the tool (add to selection, remove from selection, toggle selection) that affects all boundaries that are drawn. There should also be ways to invert the current selection, deselect everything, and select everything.
Next, instead of always creating a new point cloud every time I confirm a selection I should be able to set a target point cloud that the current selection is moved to when I confirm it. The option to create a new cloud from the selection is also useful and should still be kept.
Oh yeah, configurable keyboard shortcuts for all of these tasks are pretty important too. Basically I want to be able to zoom in on part of the cloud make a selection, pause segmentation, rotate around to a few other angles to confirm only the points I want are selected, resume segmentation, add or subtract from the selection as needed, confirm the selection, and move on to the next area all in a few tens of seconds at most.
All of the above would work quite well with the existing box and polygon selection tools. Two additional selection tools that would be useful though would be Freehand and, my personal favorite, Paint Brush selection. These selection tools would be particularly useful when used with a graphics tablet.
Although the above changes would greatly increase usability they don't help much with the other problem andrewod points out, the difficulty of getting at a cluster of points that are surrounded by other points. To address this it might be useful to introduce the concept of points being either hidden or visible orthogonal to the point cloud that they belong to. For example, I might start with a single point cloud of a statue inside a room. I want to segment out the statue but points on the walls and ceiling are getting in the way and making selection difficult. Being able to select the walls and ceiling, hide the points, segment out the statue, then restore the hidden wall and ceiling points; leaving me with two point clouds (one for the room and one for the statue) would be very useful. In addition to being useful for ad-hoc selections like this having the ability to temporarily hide points would also be useful for working through a data set in a more systematic way. For example, with large outdoor datasets it is often convenient to step through them, working with consecutive slices of points each of which is only a few meters thick.
Thanks for making it all the way through this post. Seeing as this is my first post I would also like to say thanks for all of the hard work that has already gone in to CloudCompare. The software has a lot of potential and in someways is already much nicer than some of the commercial offerings.