siavashk / pycpd

Pure Numpy Implementation of the Coherent Point Drift Algorithm
MIT License
510 stars 115 forks source link

[BUG] #81

Closed a2mattreed closed 1 year ago

a2mattreed commented 1 year ago

Thanks for this fantastic and well-coded library. One problem: I found that DeformableRegistration().transform_point_cloud is raising an exception when the number of points to be transformed is different from those used to compute the registration. one of the examples triggers this:

% python examples/fish_deformable_3D_register_with_subset_of_points.py Traceback (most recent call last): File "/fish_deformable_3D_register_with_subset_of_points.py", line 55, in main() File "pycpd-master/examples/fish_deformable_3D_register_with_subset_of_points.py", line 43, in main YT = reg.transform_point_cloud(Y=Y) File "/lib/python3.9/site-packages/pycpd/deformable_registration.py", line 68, in transform_point_cloud return Y + np.dot(self.G, self.W) ValueError: operands could not be broadcast together with shapes (182,3) (91,3)

gattia commented 1 year ago

Thanks for the feedback! It looks like you might be using an old version (maybe installed via pypi? - sorry, this probably hasn't been updated in a while). I say that because if you look at the code on the lines you are throwing errors the code doesn't match:

https://github.com/siavashk/pycpd/blob/e5ca02d2501fb4b633c1664de939c336ffa2349e/pycpd/deformable_registration.py#L68-L100

Can you trying installing from source? Or if you are, can you maybe update?

Thanks.

a2mattreed commented 1 year ago

Wow! Thanks for the amazing fast response. Indeed I’d installed from pypi using pip, but also had the source on hand, so swapped that in and it’s all good. I really appreciate your work on this library!

—Matt

On Feb 26, 2023, at 1:33 PM, Anthony @.***> wrote:

Thanks for the feedback! It looks like you might be using an old version (maybe installed via pypi? - sorry, this probably hasn't been updated in a while). I say that because if you look at the code on the lines you are throwing errors the code doesn't match:

https://github.com/siavashk/pycpd/blob/e5ca02d2501fb4b633c1664de939c336ffa2349e/pycpd/deformable_registration.py#L68-L100

Can you trying installing from source? Or if you are, can you maybe update?

Thanks.

— Reply to this email directly, view it on GitHub https://github.com/siavashk/pycpd/issues/81#issuecomment-1445429826, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMBONUBVOZ7IMZ4E3H4AXQTWZOOWDANCNFSM6AAAAAAVITLS3Y. You are receiving this because you authored the thread.

gattia commented 1 year ago

Glad it worked as expected with the source!

We'll work at updating the pypi version so others dont have this issue. Thanks!