问题标签 [nifti]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 在 Python 3.7 中更改 NIFTI 的整个图像切片
我实际上正在使用 Python 处理 MRI 图像。图像格式是 NIFTI 格式,我知道如何在 x、y 或 z 轴上可视化切片,但是现在,我想对它们中的每一个使用 Sobel 过滤并用这些切片创建一个新的 NIFTI 图像。
为了那个原因:
- 我加载主 .nii.gz 图像(img = nib.load(im_path))
- 我再次使用新名称“img_sobel”(img_sobel = nib.load(im_path))加载主 .nii.gz 图像
- 为每个切片创建一个循环
- Sobel 过滤切片
- 在img_sobel的对应切片上替换这个切片("img_sobel_data[:, :, sl] == np.hypot(sx, sy)")
- 循环结束后,保存名为“image_XXX_Sobel”的img_sobel
使用 subplot,我看到每个切片上的 sobel 过滤工作,但似乎“img_sobel_data [:, :, sl] == np.hypot(sx, sy)” 行不起作用,为什么?
这是洛普部分:
怎么了 ?我们不能用 Python 替换另一个图像切片吗?有解决这个问题的技巧吗?
谢谢 !
编辑:好的,我明白了为什么我不能这么容易做到这一点:我提取了 NIFTI 图像的切片,过滤了它们,但我没有改变 NIFTI 图像本身!所以我现在的问题是:如何更改从 img_sobel.get_fdata() 获取的 NIFTI 图像?
python - 将列表转换为 Numpy 数组仅用一个数据集丢失其三个轴中的两个
我有一个使用 SimpleITK 库读取 NIFTI 图像的 python 代码。然后它将图像转换为 Numpy 数组。然后,我将 Numpy 数组扩展为一个列表。
我有 20 个 FLAIR.nii.gz 文件。它们每个都有 48 片。
当我拥有所有 20 个患者的所有 48 个切片时,我将列表转换为 Numpy 数组。
我这样做是因为我是 Python 的新手,而且我不知道有任何其他方法可以做到这一点。
代码是:
此代码生成此输出(所有 FLAIR.nii.gz 文件具有相同的形状):
代码的最终输出是:
我的问题:
我不明白为什么 flair_array 有这种形状:(960,)
。
flair_array dtype
是object
。
我尝试了相同的代码,没有更改任何内容,并且效果很好。它也有 20 名患者,每个 FLAIR.nii.gz 文件也有 48 个切片。
它的输出:
这是此数据集的最终输出:
有了这第二个数据集,flair_array
就是float32
.
为什么第一个flair_array
形状是(960,)
?
更新:
在两个数据集中,brain_array.dtype
总是float32
。
python - 如何将 Nifti 图像中的标题信息写入 csv?
我是医学图像处理的新手。我正在尝试读取 Nifti 图像并将标题信息写入 csv 文件。
现在我如何设法将这些信息保存到 csv 文件中?当我将数据输入 Numpy 时,它是一个 3 维 numpy,但是将这些信息保存为 csv 格式的正确方法是什么。
python-3.x - Aligning nifti files with different shape and q_offset values in header
I have a whole-body MRI scans with the header below:
Binary label-maps
for different organs in the whole-body MRI scan. I need to merge them together as a single label-map nifty file.
One of the label-map
has a different shape and q_offset values in its header that make merging difficult. The header of that label-map nifty file below:
When I overlay the individual label-map on top of the whole-body MRI scan using 3dSlicer
, it overlayed perfectly for the concerned organ, but as the shape is different, once after merging all label-maps, it does not work [ Yellow label-map for Spleen organ].
This is how it looks in 3dSlicer
[ Look for Yellow region.].
But the expected area of visualization is in the bottom right of below pic. (Spleen Organ)
As the voxel resolution is the same, I think this has something to do with different q_offset
values.
Kindly, let me know if anyone has a solution.
python - 将 NIFTI 图像拆分为体素补丁
我正在尝试将一组 3D MRA NIFTI 图像拆分为相同大小的体素补丁(例如 32 x 32 x 32)。
目标是使用体素训练 3D CNN 来检测大脑动脉内的异常。
如何使用 Python 使用 Numpy 之类的库来实现这一点。
image - 如何在 SimpleITK 中将位移场变换保存为图像?
我想将 DisplacementFieldTransform 保存为 SimpleITK 中的图像。
文档说:
位移场,例如存储在 DisplacementFieldTransform 对象中的位移场,也可以保存为图像(.nrrd、.nhdr、.mha、.mhd、.nii、.nii.gz)。
但是当我这样做时
我收到以下错误:
如何将我的 DisplacementFieldTransform 保存为图像?
python - 通过 Nibabel 加载 Nifti 并使用形状函数
我有一个 nifti 文件1.nii.gz
现在,我从来没有处理过 nifti 文件。
所以,只要用这个软件打开它,我就意识到 nii.gz 是一种包含3 个二维图片数组的容器。事实上,如果我滚动鼠标,我可以看到在图片中标记为 1 的“方向”的 448 张 2d 图片,“方向”2 的 448 张 2d 图片和“方向”3 的 25 张 2d 图片。
在此之后,我打开了 shell 并尝试将这个 nii.gz 与 Nibabel 库一起使用
但是,如果我输入
结果我得到 (448,448,25),所以这个 .nii.gz 似乎是一个 3d 矩阵,而不是一个包含 3 个 2d 图片数组的容器。你能给我解释一下吗?
python - 如何对齐大脑 MRI
我有一个关于对不同患者进行的脑 MRI 的nifti文件数据集,我使用名为 Nibabel 的库将它们加载到 Python 中。
这是从我的数据集中拍摄的 MRI 切片:
正如你所看到的,这个头部没有完全对齐(在这种情况下稍微向右倾斜)。由于我想将此 nifti 数据集与神经网络一起使用,因此我想正确对齐每一个 Brain MRI。
我找到了Flirt工具(在 FSL 中找到)(我实际上正在使用Python的包装器),你知道它是否可以用来解决我的问题吗?
如果是,该工具的适当设置是什么?这是我第一次使用 nifti 文件:(
如果此工具不能用于对齐脑 MRI,您知道我可以用于此目的的工具/库吗?
python - 使用 UNet 分割多种材料
我正在尝试在 nifti 文件 (.nii) 中分割多种材料,但每当我运行我的 UNet 时,它只会分割一种材料并返回 0 和 1(黑色和白色)的标签。我想返回 0、1 和 2 的标签。我n_labels = 3
在定义模型时尝试包括在内,但模型仍然返回 0 和 1 的标签。我的训练标签用未标记、内部和外部分段。
python - 如何从数组中正确提取 PNG 格式的标记掩码?
我有以下格式的文件,Nifti
其中包含掩码,我编写了以下代码将里面的图像提取为PNG
图像,问题是:
这是一个标有 [0. 1. 2. 3.],保存掩码后,PNG
掩码图像内的值分布在 [0 --> 255] 范围内,它们不再像以前那样只是 4 个标签!
请问我该如何解决这个问题?
唯一重要的是里面有 4 个独特的标签。
提前致谢。