【问题标题】:Mapping values from NP ARRAY to STL将值从 NP ARRAY 映射到 STL
【发布时间】:2022-01-17 22:18:19
【问题描述】:

最近我一直在努力尝试使用 STL 对象的特定空间坐标获取 3D 体积(np 数组)的像素值。 STL 对象在空间上与 3D 体积重叠,但后者没有坐标,所以我不知道如何选择与 STL 坐标对应的像素值。 有什么想法吗?

【问题讨论】:

    标签: python stl interpolation medical-imaging nifti


    【解决方案1】:

    如果 STL 对象确实在 3d 体积的坐标空间中,那么您可以简单地将 STL 的坐标作为索引来从 3d 数组中查找值。此查找对 3d 图像进行最近邻插值。为了获得更好看的结果,您需要对附近的像素进行线性(甚至三次)插值。

    在大多数 3D 成像任务中,这些坐标空间不会对齐。所以有一个从世界空间到 3d 体积空间的转换。但是如果你只有一个 3d numpy 数组,那么就没有转换信息。

    更新: 要索引到 3d 体积,请从 STL 对象中获取点的 X、Y、Z 坐标并将它们转换为整数值 I、J、K。然后使用 I、J、K 作为索引在 numpy 数组中查找:np_array[ K][J][I].我认为你必须颠倒索引的顺序,因为数组排序 numpy 使用。

    当你在 python 中使用 3d 数组和 STL 对齐时,你是如何显示的?原始的 DICOM 或 Nifti 在元数据中肯定有世界坐标变换。

    【讨论】:

    • 感谢您的回答!在 3D Slicer 中加载 STL 和 numpy 数组的 DICOM 原始体积它们完美对齐,因此在 python 中使用它们时,我假设它们位于相同的坐标空间中。但我不明白如何使用 STL 的坐标作为没有坐标的 3d 数组的索引。
    • 此外,我还有同一个 3D 数组的 DICOM 和 nifti 文件(3D 数组实际上是从卷的 nifti 文件中提取的)
    猜你喜欢
    • 2018-07-21
    • 1970-01-01
    • 2017-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-29
    • 1970-01-01
    相关资源
    最近更新 更多