使用 NIfTI_tools 后 NIfTI 空间 position/orientation 发生变化
NIfTI spatial position/orientation changes after using NIfTI_tools
我正在使用特定的工具箱 (Tools for NIfTI and Analyze image) 通过 MATLAB 处理 NIfTI 文件,但是当我进行简单的值修改时,与图像以某种方式改变了。我不能直接比较之前和之后的图像,因为它们有不同的来源 and/or 一些轻微的翻译。我没有(有意)修改 NIfTI header 信息。其实我只用了三个命令:
matlab_nii = load_nii('original.nii');
matlab_nii.img(matlab.nii.img > 10) = NaN;
save_nii(matlab_nii, 'new.nii');
尽管没有编辑任何 header 信息,只是直接修改图像值,但新的 NIfTI 文件具有不同的空间属性,无法直接与原始文件进行比较,以验证确实,修改发生了。
我希望有人使用过这些工具并遇到过这个问题。
在关于 NIfTI/MATLAB 的 问题的答案之一中找到了解决方案。
答案是用load_untouch_nii
代替load_nii
,用save_untouch_nii
代替save_nii
。
我最初使用的函数会将仿射变换数据(如果存在,显然存在)应用于图像。使用这些函数会导致体素之间的直接空间关联。
我正在使用特定的工具箱 (Tools for NIfTI and Analyze image) 通过 MATLAB 处理 NIfTI 文件,但是当我进行简单的值修改时,与图像以某种方式改变了。我不能直接比较之前和之后的图像,因为它们有不同的来源 and/or 一些轻微的翻译。我没有(有意)修改 NIfTI header 信息。其实我只用了三个命令:
matlab_nii = load_nii('original.nii');
matlab_nii.img(matlab.nii.img > 10) = NaN;
save_nii(matlab_nii, 'new.nii');
尽管没有编辑任何 header 信息,只是直接修改图像值,但新的 NIfTI 文件具有不同的空间属性,无法直接与原始文件进行比较,以验证确实,修改发生了。
我希望有人使用过这些工具并遇到过这个问题。
在关于 NIfTI/MATLAB 的
答案是用load_untouch_nii
代替load_nii
,用save_untouch_nii
代替save_nii
。
我最初使用的函数会将仿射变换数据(如果存在,显然存在)应用于图像。使用这些函数会导致体素之间的直接空间关联。