svd_point_mapping:Julia和C ++代码使用刚性旋转和平移将一组点映射到另一组点

时间:2021-05-01 01:10:47
【文件属性】:
文件名称:svd_point_mapping:Julia和C ++代码使用刚性旋转和平移将一组点映射到另一组点
文件大小:5KB
文件格式:ZIP
更新时间:2021-05-01 01:10:47
C++ 这是Julia对点映射问题的解决方案的实现:给定一组参考点和另一组点,您如何严格地旋转第二组点并将其尽可能平移回第一组? 在此不考虑缩放第二组。 有时称为Procrustes问题或Kabsch问题(当不存在翻译时)。 我的代码非常感谢Olga Sorkine关于使用奇异值分解(SVD)解决问题的可读性很高的解释:[svd_rot.pdf]( ) (我相信)欧拉角惯例与许多物理学文献一致,但直接取自[Eric Weisstein的MathWorld的“欧拉角”)( ) 我还使用Eigen库( )在C ++中实现了该算法。 可以使用以下命令编译C ++代码: g++ -I ../eigen/ align_svd.cpp -o align_svd但是您可能必须更改Eigen库的路径。 对于我使用的测试用例,C ++和Julia实现的结果相同(直到浮点错误),但是它们使用的实际仿
【文件预览】:
svd_point_mapping-master
----rots.jl(663B)
----align_svd.jl(1KB)
----align_svd.cpp(3KB)
----svd_point_mapping.ipynb(5KB)
----README.md(1KB)
----compare_to_cpp.ipynb(2KB)

网友评论