带有 EEG 可视化的 MRI

Beginner

This tutorial is from open-source community. Access the source code

简介

本实验将指导你使用 Python Matplotlib 创建一个带有 EEG 轨迹的 MRI 图像可视化。你将学习如何加载和显示 MRI 和 EEG 数据,绘制 MRI 图像的强度直方图,以及绘制以时间为 x 轴、电极通道为 y 轴的 EEG 轨迹。

虚拟机提示

虚拟机启动完成后,点击左上角切换到“笔记本”标签,以访问 Jupyter Notebook 进行练习。

有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。

如果你在学习过程中遇到问题,随时向 Labby 提问。课程结束后提供反馈,我们将立即为你解决问题。

加载 MRI 数据并显示图像

第一步是加载 MRI 数据并显示图像。我们将使用 imshow() 函数来显示图像,并使用 axis('off') 来移除坐标轴标签。

import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure("MRI_with_EEG")

## 加载 MRI 数据(256x256 16 位整数)
im = np.load('mri_data.npy')

## 绘制 MRI 图像
ax0 = fig.add_subplot(2, 2, 1)
ax0.imshow(im, cmap='gray')
ax0.axis('off')

绘制 MRI 强度直方图

接下来,我们将使用 hist() 函数绘制 MRI 强度的直方图。我们会将强度值归一化到 0 到 1 的范围。

## 绘制 MRI 强度直方图
ax1 = fig.add_subplot(2, 2, 2)
im = np.ravel(im)
im = im[np.nonzero(im)]  ## 忽略背景
im = im / im.max()  ## 归一化
ax1.hist(im, bins=100)
ax1.set_xlabel('Intensity (a.u.)')
ax1.set_ylabel('MRI density')

加载 EEG 数据并绘制轨迹

下一步是加载 EEG 数据并绘制轨迹。我们将使用 fromfile() 函数从文件中加载数据,并使用 LineCollection() 来绘制轨迹。我们还将把 y 轴刻度标签设置为电极通道。

## 加载 EEG 数据
n_samples, n_rows = 800, 4
data = np.load('eeg_data.npy')
t = 10 * np.arange(n_samples) / n_samples

## 绘制 EEG
ax2 = fig.add_subplot(2, 1, 2)
ax2.set_xlim(0, 10)
ax2.set_xticks(np.arange(10))
dmin = data.min()
dmax = data.max()
dr = (dmax - dmin) * 0.7  ## 稍微紧凑一点。
y0 = dmin
y1 = (n_rows - 1) * dr + dmax
ax2.set_ylim(y0, y1)

segs = []
for i in range(n_rows):
    segs.append(np.column_stack((t, data[:, i])))

offsets = np.zeros((n_rows, 2), dtype=float)
offsets[:, 1] = np.arange(n_rows) * dr

lines = LineCollection(segs, offsets=offsets, transOffset=None)
ax2.add_collection(lines)

## 将 y 轴刻度设置为使用 y 轴上的轴坐标
ax2.set_yticks(offsets[:, 1])
ax2.set_yticklabels(['PG3', 'PG5', 'PG7', 'PG9'])
ax2.set_xlabel('Time (s)')

显示可视化结果

最后,我们将使用 show() 函数来显示可视化结果。

plt.tight_layout()
plt.show()

总结

在这个实验中,你学习了如何使用 Python 的 Matplotlib 创建一个带有 EEG 轨迹的 MRI 图像可视化。你加载并显示了 MRI 图像,绘制了 MRI 图像的强度直方图,并绘制了以时间为 x 轴、电极通道为 y 轴的 EEG 轨迹。