【问题标题】:Does vtk mesh generation change coordinates?vtk 网格生成会改变坐标吗?
【发布时间】:2020-03-05 11:45:12
【问题描述】:

我使用 python 实现的 vtk 将 nifti 文件转换为 vtk。主要功能是 vtkMarchingCubes。

contour=vtk.vtkMarchingCubes() 

结果 vtk 网格具有正确的形状,但它们的位置似乎发生了变化。 例如,当我在同一场景中使用不同的管道 (freesurfer) 使用由完全相同的 nifti 图像制成的 pial 表面加载它们时,结果如下所示。

nifti 的 vtk 转换是否会改变顶点的坐标或以某种方式“重置”它们?

【问题讨论】:

    标签: vtk vertex


    【解决方案1】:

    VTK 的 MarchingCubes 过滤器应在与体积相同的坐标系中生成三角形。唯一的问题是 Nifti 图像还包含图像的坐标系,VTK 可能没有正确使用它。我猜在 Nifti 中有一个转换,VTK 没有正确使用。

    尝试使用 Slicer (slicer.org) 或 ITK-Snap (itksnap.org)。它们在维护医学图像的坐标系方面做得更好。

    【讨论】:

    • 由于我必须将所有东西都制作成 bash 脚本(和 Python),我不得不使用 VTK。我在 vtkNIFTIImageReader 中找到了 reader.GetQFormMatrix(),它有一些偏移量。我应该为 vtkPolyDataWriter 设置一些选项吗?
    • 我很高兴你知道了。如果你需要它,Slicer 可以用 Python 编写脚本。它没有可加载的模块,因此您必须将 Slicer 作为命令行程序运行,但您可以为其提供一个 python 脚本来执行任何处理,然后在那里写出结果。
    【解决方案2】:

    是的,VTK 在读取 nifti 时会改变坐标。

    -使用 GetQFormMatrix() 获取 Q 矩阵 - 使用 vtkTransform() 变换坐标 是必需的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-13
      • 2015-05-08
      • 2011-06-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多