Closed stevenagl12 closed 5 years ago
The code doesn't "break", rather it raises a ValueError. This is deliberate because the original coherent point drift paper uses 2D matrices as containers for point clouds. See page 2, Section 3:
Throughout the paper we use the following notations: ... X{NxD} ... the first point set (data points) Y{MxD} ... the second point set (GMM centroids)
This basically means that each row in the 2D array corresponds to one point in the point cloud. The first, second and third columns contain the positions of points along the x, y and z axes respectively.
I have already provided multiple 3D registration examples. See this section of the README. You can try them by running python examples/fish_{Transform}_3D.py
from the project root, where Transform
is either rigid, affine or deformable.
How do you come up with the GMM centroids for your 3d model for X then?
On Thu, Aug 15, 2019, 00:32 Siavash Khallaghi notifications@github.com wrote:
The code doesn't "break", rather it raises a ValueError. This is deliberate because the original coherent point drift paper https://arxiv.org/pdf/0905.2635.pdf uses 2D matrices as a containers for point clouds. See page 2, Section 3:
Throughout the paper we use the following notations: ... X{NxD} ... the first point set (data points) Y{MxD} ... the second point set (GMM centroids)
This basically means that each row in the 2D array corresponds to one point in the point cloud. The first, second and third columns contain the positions of points along the x, y and z axes respectively.
I have already provided a 3D registration example. See this section https://github.com/siavashk/pycpd#usage of the README. You can try it by running python examples/fish_{Transform}_3D.py from the project root.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/siavashk/pycpd/issues/29?email_source=notifications&email_token=AHHKCLJHINRT4BTHD63RL3LQETL5VA5CNFSM4ILZH6I2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD4KZX4Q#issuecomment-521509874, or mute the thread https://github.com/notifications/unsubscribe-auth/AHHKCLLULB5HXBN3M477O4LQETL5VANCNFSM4ILZH6IQ .
The GMM centroids are the same as the moving (or source) point cloud.
I have tried running your code using a trimesh import of a 3D mesh object. However, the code breaks saying that this only works on 2D numpy arrays? How do you perform 3D registrations if it's only able to work with 2D arrays?