Page 1 of 1

Changing a point cloud to fit a shape?

Posted: Sun Jun 30, 2019 8:15 am
by jjk
Hello CC community,

I hope that you can help me with this query.

I have two sets of cloud points that I am trying to wrangle with, both of which have the shape of a part of an elliptic parabolid. The first is from an experiment performed recently, which has a specific order and number of tracking points, but does not lie in the same shape as a perfect mathematical case. As you can guess, the second set of data is that perfect mathematical case, with many points used to represent it. It's about the same size as the first set, but shaped differently; think of it as being more concave. It doesn't necessarily have the same points as the first set.

What I want to be able to do, essentially, is to take the first set of data and somehow warp/change the positions of the tracking points such that, by the end of the process, the first set of data has the same shape as the second set (i.e. the mathematical set.) I want to do this so that the altered first data set can be used as a basis for future experiments.

Is such a thing possible in CloudCompare, or another program?

Re: Changing a point cloud to fit a shape?

Posted: Sun Jun 30, 2019 7:59 pm
by daniel
How do you expect the "shape" to change?

For what I understood, you could try to mesh the "mathematical" cloud (so as to avoid issues with holes / missing parts) and then align (with ICP) the other cloud with this mesh. You can even ask it to change the scale so as to fit the mathematical paraboloïde).

Re: Changing a point cloud to fit a shape?

Posted: Mon Jul 01, 2019 1:42 pm
by jjk
daniel wrote: Sun Jun 30, 2019 7:59 pm How do you expect the "shape" to change?

For what I understood, you could try to mesh the "mathematical" cloud (so as to avoid issues with holes / missing parts) and then align (with ICP) the other cloud with this mesh. You can even ask it to change the scale so as to fit the mathematical paraboloïde).
I expect the shape to become more concave, that being that the edges move inwards and the centre moves downwards. It's not a very extreme change, maybe something like 2-3 mm for each point.

I've got a diagram of what I expect to happen here. The arrows indicate which direction the points have moved.

Image

I tried doing as you suggested, but I'm unsure it's a 'perfect' fit, which is what is desired. It's close, but it's not directly on-the-line for each point (some are below or outside the mesh.)

Re: Changing a point cloud to fit a shape?

Posted: Mon Jul 01, 2019 9:02 pm
by daniel
If you really want the shape to change, then it's non rigid registration, and that's not supported by CloudCompare.

Re: Changing a point cloud to fit a shape?

Posted: Tue Jul 02, 2019 8:51 am
by jjk
daniel wrote: Mon Jul 01, 2019 9:02 pm If you really want the shape to change, then it's non rigid registration, and that's not supported by CloudCompare.
Ah ok, thanks for letting me know.

I've got MATLAB and I'm currently investigating some user-made non rigid registration algorithms - does anyone know of specific ones to recommend?

Re: Changing a point cloud to fit a shape?

Posted: Tue Jul 02, 2019 7:40 pm
by rtrimble
Shape manipulation you are interested can be achieved through trial and error using the scale command. The shapes would have to be orientated exactly the same. Most likely by aligning them(without scaling) (as close as you can get the centroids of each shape) then separating them in a side to side fashion for clarity. Orientating the shape so the semi-major/minor is close to the x-y, y-x, or whatever perspective would help so your not continuously making adjustments back and forth. Subset so no other entities are present that do not require manipulation. The x, y, z would then need to be independently scaled, one at a time, then most likely a few iterations to fine adjust. This will get you close, and the deviation in each axis should be shown. This is something different and interesting, look forward to how it turns out.