python - 有没有办法在 Python 中操作 STL 的数据点? (医疗应用)

标签 python 3d transformation euclidean-distance 3d-modelling

尝试将编程应用于医学研究的新手程序员。我正在使用 Python 和根据患者 CT 扫描制作的 STL(3D 格式)文件进行生物力学模拟。我正在尝试围绕任意轴旋转一个骨骼区域以模拟关节运动并测量韧带插入点之间的距离(变化),但对如何执行此操作一头雾水。我可以将数据从 STL 文件导入点云,并在那里进行基本操作,但我不知道如何重建 STL。有没有办法把STL数据当成一个结构体,直接进行几何变换?根据新位置,我正在计算有效韧带长度(基本上是感兴趣骨骼区域中一点到另一点之间的距离)。基于这些值,我正在尝试“着色”STL 并制作 3D“热图”,基本上较高的值是红色,较低的蓝色等。我真的无法让 Mayavi 工作,我会继续点云,但在 Python 中绘制和操作非常慢。感谢您的帮助!

TL; DR 下面:

  • 如何围绕 STL 文件中的任意轴进行矩阵旋转,或者就此而言,如何进行任何几何变换?
  • 如何测量单独的 STL 文件中两点之间的距离?
  • 如何根据一组值更改 STL 三角形/曲面的颜色?

最佳答案

这个过程涉及很多子任务。您必须对属于每个 body 部位的点进行分组,定义旋转点和测量点。

在我看来,这些操作都不适合通过编程(使用 Python 或其他方式)执行,因为它们涉及大量的用户交互。您可能想了解如何在 3D 编辑器中执行这些操作。

Blender免费,可以导入STL,虽然学习曲线有点陡,但是网上有很多学习资料。你会想看看 vertex groups , rigging , 和 measuring distances .

设置基本模型后,您可以轻松地对其进行编程更改,感谢 blender's extensive python API .有了它,您将能够自动化测试,并在需要时以图形方式检查结果。

请注意,许多可用的文档仍然涉及 blender 版本系列 2.4,而最新的是 2.6。您可能想尝试两者。

关于python - 有没有办法在 Python 中操作 STL 的数据点? (医疗应用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23202439/

相关文章:

python - python中使用turtle的警报框

python - 如何将 bool 条件包含到Python的列表理解中?

javascript - 保持我的网站更新 - 有更好的方法吗?

silverlight - Windows Phone 7 中使用 Silverlight 的 3D 模型

r - 将多个记录转换为 R 中的单个记录

python - 使用 3 个或更多参数输入字段调用函数 - function()()()

Java 3D Canvas 到虚拟世界映射

ios - 在 iOS 中建模 3D 空间

oop - 在 OOP 语言中命名对象时, "map"和 "transform"有什么区别?

python - 将 Pandas 中的列反规范化为 bool 矩阵?