【问题标题】:How to get a voxel array from a list of 3D points that make up a line in a voxalized volume?如何从构成体素化体积中的一条线的 3D 点列表中获取体素数组?
【发布时间】:2019-06-12 14:54:28
【问题描述】:

我有一个代表 3D 体积中的针/导管的点列表。这个体积是voxalized。我想获得连接点的线相交的所有体素。这条线需要经过所有的点。

理想情况下,由于圆针/导管有一个宽度,我希望能够获得与针/导管的实际三维对象相交的体素。 (我想这要困难得多,所以如果我能得到第一个问题的答案,我会非常高兴!)

我正在使用最新版本的 Anaconda (Python 3.7)。我见过一些类似的问题,但代码总是在 C++ 中,而且似乎都不是我想要的。我相当确定我需要使用光线投射或 3D Bresenham 算法,但我不知道如何。

感谢您的帮助!

【问题讨论】:

    标签: python 3d line voxel bresenham


    【解决方案1】:

    我最终自己解决了这个问题。对于任何想知道如何的人,我将简要解释一下。

    首先,由于所有导管都指向 z 轴的大致方向,因此我得到了沿该轴的切片厚度。两个输入点都落在一个切片上。然后,我得到了两个输入点与 z 切片之间的线之间的每个交点的坐标。接下来,由于我知道导管的半径并且可以计算两点之间的角度,因此我能够在每个切片上围绕我之前找到的点绘制椭圆路径(当你以和角度切割圆锥时,交叉-section 是一个椭圆)。然后我得到了沿 z 轴每个切片上所有体素的坐标,并检查了哪些体素在我的椭圆路径内。这些体素是描述导管体积的体素。如果您想查看我的代码,请告诉我。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-26
      相关资源
      最近更新 更多