问题标签 [mri]

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 回答
240 浏览

python - 使用 nilearn 进行 3D 图像可视化

我使用 plot_glass_brain 用 nilearn 可视化 3D 图像(Nifti),但显示不正确。见下面的代码和图片

2_1_t2.nii文件可在此链接上找到:https ://drive.google.com/file/d/1_gsg8sO9c7Ws6Xd7xB1uFSW8H31tAHtm/view?usp=sharing

在此处输入图像描述

在此处输入图像描述

0 投票
1 回答
43 浏览

python - 在 csv 中保存为数据框的 3D 数组不成功

我有一些 MRI 数据,我试图将处理后的 3D 图像作为具有相应标签的数组放入数据帧。然后将其保存在 CSV 文件中。我将每个 3D 图像制作成 16 16 16 阵列。

但是,保存 CSV 文件后,数组似乎并没有完全写入文件中。只有一部分得救了。

我不确定为什么...

这是我处理 3D 图像的代码:

以下是我保存为 CSV 文件的代码:

我注意到在我的 CSV 文件中,数组的某些部分未保存并被替换为“...”

像这样 :

我怎样才能解决这个问题?谢谢你。

0 投票
1 回答
106 浏览

python - 图像分类,3D 黑白 MRI 数据。数据维度问题

我正在尝试构建一个 CNN,它可以将 3D MRI 文件分类为两个类别之一,基本上有病或没有病。我做了很多谷歌搜索,似乎一致认为 2D CNN 是最好的,因为数据是黑白的,因此维度降低了。

在将所有内容传输到远程工作站以运行所有内容之前,我正在使用 Google Colab,并且我正在使用数据的子集在运行所有内容之前使其正常工作,但我有 20 个黑白文件 (189, 233 , 197)。以下是我到目前为止的代码:

这会产生错误

所以我缺少一个维度,我认为是因为它不是 rgb 图像,所以缺少通道数据。所以我回到下面的代码行并使用 np.reshape 添加一个维度:

当我通过所有内容运行时,我收到以下错误:

我已经在这几天了,任何帮助将不胜感激,谢谢!

0 投票
1 回答
113 浏览

python - 2D CNN 对 3D 灰度 MRI 数据进行分类,可能存在数据标记问题

我正在尝试对 3D 黑白 MRI 数据进行二进制分类。由于缺乏黑白数据中固有的通道,我正在使用 2D 卷积。我添加了一个维度来排列维度,本质上,这些数据的深度充当了批处理维度。我正在使用数据的子样本,20 个文件,每个文件 189 x 233 x 197。就像一个快速背景。

根据下面的代码,我有一个 csv 文件,其中包含一堆信息,包括我尝试提取的每个文件的标签数据。

当我去拟合模型时,我收到以下错误:

我知道 [189,2] 中的 2 与最终的 softmax 层相关联,但我不知道如何处理该信息,或者从这里去哪里。任何帮助将不胜感激,谢谢!

0 投票
1 回答
199 浏览

python - 为灰度 MRI 数据的二进制分类构建 3D CNN,尝试 model.fit 时的数据维度问题

我正在尝试为灰度 MRI 数据的二进制分类构建 3D CNN。我是新手,所以不要打任何拳,我是来学习的!我有 20 个 3D 文件的子样本,尺寸为 (189、233、197)。我使用 np.reshape 添加 aa 维度作为通道来获得 (189, 233, 197, 1)。我使用 tf.shape 来获取数据集的形状,即

在标签数据上也是如此

以下是我正在使用的完整代码:

当我尝试拟合模型时,维度似乎没有对齐,并且出现以下错误:

训练拆分设置为 0.75,因此 20 个中有 15 个。我很困惑为什么这不起作用并且无法弄清楚为什么这是模型正在接收的输入。我之前得到了一些帮助,使用以下代码创建一个虚拟集会导致模型运行:

在这个问题上,我已经把头撞在墙上一段时间了。任何帮助将不胜感激。

0 投票
1 回答
33 浏览

python - 与输入形状维度相关的 MRI 分割误差(conv2d 层的输入 0 与该层不兼容)

我正在尝试使用深度学习模型执行一些 MRI 分割,但我收到与图像尺寸相关的错误,不知道为什么。

错误信息

0 投票
1 回答
315 浏览

python - 如何在 Python(Jupyter)中构建一个函数来计算点扩散函数(图像处理?)

在图像处理中,对图像进行傅里叶变换,然后在傅里叶中进行中心变换,然后进行欠采样,再进行中心逆变换,再通过傅里叶逆变换返回图像。那么,要计算点扩散函数,下面的函数可以吗?

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 投票
1 回答
78 浏览

ruby - Puma 如何允许并行完成 IO 等待以提高 MRI 的吞吐量?

来自Puma 的自述文件

在 MRI 上,有一个全局 VM 锁 (GVL),可确保一次只有一个线程可以运行 Ruby 代码。但是,如果您正在执行大量阻塞 IO(例如对 Twitter 等外部 API 的 HTTP 调用),Puma 仍然通过允许并行完成 IO 等待来提高 MRI 的吞吐量。

不幸的是,它没有解释提高 MRI 吞吐量的机制。

我知道MRI 在调用系统 IO 时会释放 GIL,但这是 MIR 而不是 Puma 的改进。

我想知道 Puma 如何并行改进阻塞 IO。

任何参考将不胜感激。

0 投票
1 回答
79 浏览

tensorflow - 如何提取 1 片 3d 图像张量?

假设我有一个 64x64x64 的 3D 图像。我还有一个长度为 64 的向量 x。

我想像这样采用'argmax(x)'层:

更精确(对于张量流):

错误是:

参数的 np.shape 是:

3d_image 形状是(None, 64, 64, 64, 1)

x 形状是(None, 64)

slice_index 形状是(None,)

-> 3d_image 形状的 ,1 维是因为它是数组中的一个样本。我认为这无关紧要

我知道 None 形状是批量大小,这是未知的,但其他看起来很棒..那么问题是什么?

据我了解,看起来索引不是 int32,但实际上我确实将它转换为 tf.int 那么可能是什么问题?也许 int32 与 tf.int32 不同?或者我使用的索引方法在张量流中无效?也许它应该是一个类似的函数:tf.index(image,[:,slice_index,:])..?

谢谢!