【发布时间】:2022-01-17 22:18:19
【问题描述】:
最近我一直在努力尝试使用 STL 对象的特定空间坐标获取 3D 体积(np 数组)的像素值。 STL 对象在空间上与 3D 体积重叠,但后者没有坐标,所以我不知道如何选择与 STL 坐标对应的像素值。 有什么想法吗?
【问题讨论】:
标签: python stl interpolation medical-imaging nifti
最近我一直在努力尝试使用 STL 对象的特定空间坐标获取 3D 体积(np 数组)的像素值。 STL 对象在空间上与 3D 体积重叠,但后者没有坐标,所以我不知道如何选择与 STL 坐标对应的像素值。 有什么想法吗?
【问题讨论】:
标签: python stl interpolation medical-imaging nifti
如果 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 在元数据中肯定有世界坐标变换。
【讨论】: