Detecting the axis of rotation from a pointcloud

Posted by tfinniga on Stack Overflow See other posts from Stack Overflow or by tfinniga
Published on 2010-04-14T17:28:27Z Indexed on 2010/04/14 18:13 UTC
Read the original article Hit count: 167

I'm trying to auto-detect the axis of rotation on a 3d pointcloud.

In other words, if I took a small 3d pointcloud, chose a single axis of rotation, and make several copies of the points at different rotation angles, then I get a larger pointcloud.

The input to my algorithm is the larger pointcloud, and the desired output is the single axis of symmetry. And eventually I'm going to compute the correspondences between points that are rotations of each other.

The size of the larger pointcloud is on the order of 100K points, and the number of rotational copies made is unknown.

The rotation angles in my case have constant deltas, but don't necessarily span 360 degrees. For example, I might have 0, 20, 40, 60. Or I might have 0, 90, 180, 270. But I won't have 0, 13, 78, 212 (or if I do, I don't care to detect it).

This seems like a computer vision problem, but I'm having trouble figuring out how to precisely find the axis. The input will generally be very clean, close to float accuracy.

© Stack Overflow or respective owner

Related posts about computer-vision

Related posts about computational-geometry