问题标签 [nibabel]

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.

0 投票
0 回答
731 浏览

python - .nii.gz 文件以正确定向灰度图像

我一直在做一些深度学习,通常使用普通的图像数据集,如 jpeg 或 png。最近,我遇到了一个数据集,我在其中提供了 png/jpeg 格式的测试图像,其中包含 .nii.gz 文件中的基本事实。如果我打开 .nii.gz 文件,它包含一个 .nii 文件。现在,作为此类文件的初学者,我仍然能够在 Colab 中绘制测试图像和地面实况。但是,它存在一些问题。

我使用的代码

打印输出(niiObject):

我已经通过了这个答案,但它在我上面似乎缺少的对象中有一个 img 属性(我的意思不是确切的,而是一个类似的对象)。

图像输出:

Colab 输出

现在,在此之前,我尝试在 ImageJ 应用程序中打开 .nii 文件,它看起来像这样:

ImageJ 输出

您可以看到 ImageJ one 在方向和颜色方面与 Colab 地面实况图像不同。ImageJ 一个正确地告诉 Colab 输出左侧组织图像中的细胞核位置(如下所示)。

正确的测试图像与地面实况:

正确的GT

正确的基本事实与不正确的基本事实:

不正确的 GT

因此,问题分为子问题(如标题所示)

i)如何读取 nii 图像,使其与 ImageJ 图像具有正确的方向?

编辑:我似乎已经纠正了方向问题。看起来图像是沿着 y=x 线镜像的,所以我用这段代码反转了镜像:

但是,我仍然对更好的方法持开放态度,以便更深入地了解为什么会在 nibabel 中发生这种情况,并且是否可以使用我不知道的任何 nibabel 对象参数来解决它。

ii) ImageJ 和 nibabel 加载的图像都不是灰度图像,因为在这些图像中看不到一些突出的核(它们的强度非常低,ImageJ 图像中的最大强度为 40 [对于最亮的核])。如何将其转换为灰度(0 到 255 级,以便低强度核向外扩展并更明显)?

0 投票
2 回答
2960 浏览

resize - 如何调整 nifti(nii.gz 医学图像)文件的大小

我有一些不同形状的 nii.gz 格式的医学图像。我想将所有的大小调整为相同的形状以供深度学习模型使用,我尝试使用 nibabel 的 resample_img(),但它破坏了我的图像。我想做一些其他功能,只是将其调整为特定形状,例如 (512,512,129)。

有人请在这方面帮助我。我被困在这一步好几天了。

0 投票
1 回答
595 浏览

python - 加载 3D Niftii 图像并保存轴向、冠状、矢状的所有切片?

我有一些脑部 MRI 扫描的 3D Niftii 数据集(FLAIR、T1、T2、..)。例如,FLAIR 扫描为 144x512x512,体素大小为 1.1、0.5、0.5,我想从轴向、冠状和矢状视图获得 2D 切片,我将其用作 CNN 的输入。

我想做的事:用 nibabel 读入 .nii 文件,将它们保存为 Numpy 数组,并将轴向、冠状和矢状的切片存储为 2D-PNG。

我尝试了什么:

- 使用 med2image python 库

- 使用 nibabel、Numpy 和 image 编写了自己的 python 脚本

问题:轴向和冠状图像以某种方式向一个方向拉伸。矢状面的效果应该很好。

我尝试调试 python 脚本并使用 Matplotlib 来显示我得到的数组,之后

通过使用例如:

并发现,数据已经延伸到那里。

我可以弄清楚获得所需的输出

但是如何在保存图像时应用“方面”之类的东西?或者是否有可能已经加载带有类似参数的 .nii 文件,以获得我可以使用的数据?

看起来,当 nibabel 加载 .nii 图像时,像素尺寸没有得到照顾。但不幸的是,我没有办法解决这个问题..

0 投票
2 回答
1000 浏览

python-3.x - 更改 nifti 图像中的体素值并保存

我将读取一个 nifti 图像并更改体素的值并保存与主图像类似但只有不同体素值的新 nifti 图像。换句话说,我希望分割图像中的标签从 0 到 7,而不是具有不同的数字。o 编写了下面的代码,但我收到此错误:

可能的 C/C++ 原型有: itk::simple::WriteImage(itk::simple::Image const &,std::string const &,bool) itk::simple::WriteImage(itk::simple::Image const &,std::vector<std::string,std::allocator<std::string >> const &,bool)

编码:

对于 os.listdir(path) 中的 image_path:

0 投票
0 回答
210 浏览

nifti - 使用 nibabel 的图像方向

我已经开始阅读 Nifti 图像的方向,并想澄清一些概念。以下是一些问题:

  1. 访问图像数据时:image.get_fdata()NumPy 数组的轴相对于解剖轴是否始终相同?即第一轴-> 从左到右,第二轴-> 后到前,第三轴-> 从下到上?
  2. qformsformRAS+ 扫描仪方向之间有什么关系?
  3. 根据文档,有 4 种类型的qform codesform code修改坐标的,它们之间有什么变化?

任何关于所有概念如何相关的进一步评论都值得赞赏。

0 投票
1 回答
1359 浏览

python - 如何使用 Python 检查 NIFTI 图像是否处于正确的方向/位置

我刚来这地方。目前正在学习 Python 上的医学成像数据,想知道是否可以识别 NIFti 图像的方向是否正确以及如何进行转换。我在网上查找了一些算法,通过仿射变换将成像数据(主要以 JPG 格式)“旋转”一定角度,但没有关于如何在 nifti 图像上执行此操作并通过 nibabel 将其保存为新 nifti 图像的文档.

为了说明我的意思。我想学习如何将此图像 1更改为此图像

0 投票
1 回答
870 浏览

python - 如何将 nift 文件夹转换为 png 图像?

*图书馆

有一个从 NumPy 和 imageio 导入的最知名的库 import NumPy as np import os import nibabel as nib import imageio // 方法我在其中编写代码将 nift 转换为 png
方法 将 nift(.nii) 图像转换为 png 图像def nii_to_image(niifile): filenames = os.listdir(filepath) #读取nii文件夹 slice_trans = [] #filename是nii图片的路径

主要的

0 投票
0 回答
32 浏览

deep-learning - 是否可以以漂亮的格式查看任何 3D 图像数据?

我有一个适用于漂亮图像的模型,现在假设我有一个 3D 图像,但实际上不是来自 CT 或 MRI,而是具有一般格式宽度 * 高度 * 深度,我可以从中生成一个漂亮的图像并假装它是格式正确?我应该只使用单位矩阵进行仿射吗?

0 投票
0 回答
36 浏览

python - Nibabel 不加载斜率和间参数

我正在使用nibabel包将一些 nparray 保存为 nifti 格式。我指定了斜率和截距值,以便将数据缩放回其原始格式。但是,当我加载数据时,比例和截距信息不再可用。这是重现该行为的代码片段:

输出是(None,None),尽管nii2.header.has_data_slopenii2.header.has_data_intercept都返回 True。

我用其他 nifti 阅读器(如 mango 和 itk-snap)打开了 nifti 文件,可以检查斜率和截距是否正确显示。

这是一个错误吗?

谢谢您的帮助!

0 投票
0 回答
19 浏览

memory - 清理充满记忆的漂亮物体

我正在循环加载 nii.gz 文件,这会填满内存。

目前我正在使用 python 的 del 和 gc.collect 来释放内存,有谁知道 nibabel 是否有自己的方法来关闭/清理内存中的 nii 文件/漂亮的对象?

顺便说一句,我使用 nibabel.load 将对象加载到内存中。

谢谢你们!