[Python] PCA on transformed point cloud : eigenvectors randomly change orientation

Discussão em 'Python' iniciado por Stack, Abril 28, 2025.

  1. Stack

    Stack Membro Participativo

    I have a point cloud (using the Stanford Bunny). I'm trying to estimate the value of the rotation angle, assuming that my point cloud data (PCD) is centered and the rotation occurs only in the XY plane, and there is no correspondence between original and transformed points cloud.

    I computed the eigenvectors of the original PCD, then the eigenvectors of the transformed PCD. Afterward, I computed the rotation matrix and the rotation angle.

    I developed a visualizer to observe how the eigenvectors rotate, but at certain values of theta, the eigenvectors change orientation.

    GIF showing the effect of the rotation angle on the transformed Eigenvectors

    I tried correcting the orientation if '.'product of two eigenvectors (original x transformed) is negative, but I still get wrong values. Any suggestion to correct the orientation, or to better compute the rotation angle (invariant to the eigenvectors orientation).

    Continue reading...

Compartilhe esta Página