Dicom格式转Nifti

将Dicom格式转化为Nifit后,发现图片前后方向反了,请问怎样在3d-slicer中把图片方向调整过来,看了论坛中几个类似的贴,但是,还是没有明白要怎么操作,请求指导!

这是在 DICOM → NIfTI 转换中非常常见的情况,尤其是前后(A↔P)、左右(L↔R)或上下(S↔I)轴翻转错误。下面是在 3D Slicer 中校正图像方向的完整操作指南(逐步说明):backhand_index_pointing_down:


:puzzle_piece: 一、问题来源简析

DICOM 到 NIfTI 的转换过程中,不同软件(如 dcm2niix、SPM、MRtrix、FSL)对坐标系的定义不同:

  • DICOM:使用患者坐标系(LPS:Left-Posterior-Superior)
  • NIfTI:常使用 RAS(Right-Anterior-Superior)
    这就可能导致前后(A/P)或左右(L/R)方向翻转。

:compass: 二、在 3D Slicer 中查看方向是否反了

  1. 加载 NIfTI 文件

    • 打开 Slicer → “Add Data” → 选择 .nii 文件。
  2. 查看坐标轴标签

    • 打开任意二维视窗(红/黄/绿视窗),右上角有小字母指示(例如 A–PL–RS–I)。
    • 若发现“前后颠倒”,例如解剖明显朝向错误(脸部在后),说明 NIfTI 在 A/P 方向反了。
  3. 查看 Volume Information

    • 选中该 Volume → “Volumes” 模块 → 查看 IJK to RAS matrix
    • 如果矩阵中某个轴方向的符号是反的(例如 -1),说明该轴被翻转。

:wrench: 三、两种常用的方向调整方法

方法 1:使用 “Transforms” 模块(推荐)

这是非破坏性方式,可直观看结果。

  1. 打开 Modules → Transforms

  2. 点击 “Create new linear transform”

  3. 在 “Transform Matrix” 中,将需要翻转的轴乘以 -1:

    • 若前后反:在第二行第二列输入 -1
    • 若左右反:在第一行第一列输入 -1
    • 若上下反:在第三行第三列输入 -1
  4. 在 “Data” 模块中,将该 NIfTI 图像拖入刚创建的 Transform 下。

  5. 图像方向会立即翻转;确认正确后:

    • 右键图像 → “Harden Transform”(应用变换)。
    • 再保存为新的 NIfTI 文件。

:white_check_mark: 小技巧:

  • 翻转后可加载一个 DICOM 对照查看是否解剖一致。
  • “Harden Transform” 后就永久修正了。

方法 2:用 “Reformat” 或 Python Console 操作

(1)Reformat 模块

  • 打开 Reformat 模块。
  • 选中你要操作的 Volume。
  • 在 “Slice” 控制条中可翻转特定轴(Flip A/P、L/R、S/I)。
  • 用于快速检查。

(2)Python Console 直接修改

volumeNode = slicer.util.getNode('YourVolumeName')
matrix = vtk.vtkMatrix4x4()
volumeNode.GetIJKToRASMatrix(matrix)
matrix.SetElement(1, 1, -matrix.GetElement(1, 1))  # 翻转前后方向
volumeNode.SetIJKToRASMatrix(matrix)

然后保存该 volume 即可。


:floppy_disk: 四、保存修正后的 NIfTI 文件

  1. File → Save
  2. 选择修正后的 volume,保存为 .nii
  3. 下次加载时就保持正确方向了。

:white_check_mark: 五、建议与验证

  • 建议始终使用 LPS→RAS 统一坐标系。

  • 验证方法:加载 DICOM 原始数据与修正后 NIfTI 一起显示,确认解剖方向一致。

  • 如果经常遇到此类问题,可在 dcm2niix 转换时加参数:

    dcm2niix -x n -z y -f %p_%s -o output_dir input_dir
    

    并检查 log 输出中的 “Orientation” 信息。


如果数据量较大,可以写一个自动检测并纠正 NIfTI 前后方向的 Python 脚本

感谢老师的耐心、详细解答,已顺利将方向调整过来,另外,在将Nifti图像拖入新创建的Transform时,右边二维图像显示框会变黑,研究了一下,需要reset一下视野,图像就可正常显示!

1 Like