我有一个 tensor_fa nifti 图像,其值 [0,1] 的数据类型为 FLOAT32。最初尝试使用 xtk 边缘库加载本地脚本。这显示了一个空白画布。我还尝试增加范围(乘以 100 到范围 [0,100])并将这个相乘的图像更改为 INT32。在 slicedrop 中尝试时,原始图像“加载”,但任何阈值尝试都会引发“将文件放置在任何地方”消息。乘以 100 的图像也是如此。INT32 图像允许阈值化,但仍不显示图像。我已经在 fslview 和 mricron(nifti 查看器)中验证了所有三个图像。
此外,我尝试将音量最小/最大设置为 0/1,将阈值下限/上限设置为 0/1。
基本 nifti 标头信息:
data_type FLOAT32 或 INT32 昏暗1 121 昏暗2 145 昏暗3 121 昏暗4 1 数据类型 16 或 8 pixdim1 1.5000000000 pixdim2 1.5000000000 pixdim3 1.5000000000 pixdim4 0.0000000000 cal_max 0.0000 cal_min 0.0000 文件类型 NIFTI-1+ scl_slope 1.000000 scl_inter 0.000000
图像是:
http://wagners.homeip.net/work/wrtensor_fa_orig.nii.gz(原图)
http://wagners.homeip.net/work/wrtensor_fa.mul100.nii.gz(乘以 100)
作为 int 的图像被命名为 wrtensor_fa.nii.gz。Stackoverflow 不会让我发布第三个链接。
任何建议表示赞赏。
进一步跟进:
看来数据并不是真正的 [0,1]。它包含 NaN。当我将 NaN 转换为真值(例如 -1)时,可以显示图像。但是,我需要使用未修改的图像。有人会认为 volume.lowerThreshold 和 upperThreshold 可以解决问题。
进一步跟进#2:
我一直在摸索 Chrome 的 javascript 工具。在我正在使用的页面上,三个图像中的第一个(INT16)我可以做一个volume.filedata 并接收一个ArrayBuffer。第二个和第三个(均为 FLOAT32)返回 NULL。