本教程展示了如何可视化评估脑磁图传感器位置的空间配准,数字化头皮地标和传感器位置,以及MRI体积。这个配准过程对于计算正向解是至关重要的,理解这个过程中涉及的不同坐标系也是如此。
先导入:
import nibabel as nib
import numpy as np
from scipy import linalg
import mne
from mne.io.constants import FIFF
data_path = mne.datasets.sample.data_path()
subjects_dir = data_path / "subjects"
raw_fname = data_path / "MEG" / "sample" / "sample_audvis_raw.fif"
trans_fname = data_path / "MEG" / "sample" / "sample_audvis_raw-trans.fif"
raw = mne.io.read_raw_fif(raw_fname)
trans = mne.read_trans(trans_fname)
src = mne.read_source_spaces(subjects_dir / "sample" / "bem" / "sample-oct-6-src.fif")
# Load the T1 file and change the header information to the correct units
t1w = nib.load(data_path / "subjects" / "sample" / "mri" / "T1.mgz")
t1w = nib.Nifti1Image(t1w.dataobj, t1w.affine)
t1w.header["xyzt_units"] = np.array(10, dtype="uint8")
t1_mgh = nib.MGHImage(t1w.dataobj, t1w.affine)
Opening raw data file /home/circleci/mne_data/MNE-sample-data/MEG/sample/sample_audvis_raw.fif…
Read a total of 3 projection items:
PCA-v1 (1 x 102) idle
PCA-v2 (1 x 102) idle
PCA-v3 (1 x 102) idle
Range : 25800 … 192599 = 42.956 … 320.670 secs
Ready.
Reading a source space…
Computing patch statistics…
Patch information added…
Distance information added…
[done]
Reading a source space…
Computing patch statistics…
Patch information added…
Distance information added…
[done]
2 source spaces read
什么是坐标系(coordinate frames)?
对于MEG/EEG源成像,必须使用两个3D变换矩阵对三个坐标系进行对齐,这些变换矩阵定义了如何旋转和平移一个坐标系中的点到另一个坐标系中的等效位置。三个主要的坐标系是:
- “meg”:meg传感器物理位置的坐标系
- “mri”:mri图像的坐标系,以及从mri图像中导出的头皮/颅骨/大脑表面
- “head”:数字化传感器位置和头皮标志的坐标系(“fiducials”)
每一个的更详细信息都会在下一章讲到。
可视化这些坐标系的一个方法是使用mne.viz.plot_alignment函数,用于创建或查看将这些坐标系对齐的转换,并显示EEG传感器、MEG传感器、脑活动源和导体模型的结果配准。如果提供subjects_dir和subject参数,该函数自动加载受试者的Freesurfer MRI表面。对我们来说很重要的一点是,给plot_alignment传递show_axes=True参数,将以不同的颜色绘制每个坐标系的原点,并用不同大小的箭头表示坐标轴:
- shortest arrow: (R)ight / X
- medium arrow: forward / (A)nterior / Y
- longest arrow: up / (S)uperior / Z
请注意,所有三个坐标系都是RAS坐标系,因此也是右手坐标系。最后,请注意,coord_frame参数设置相机最初应与哪个坐标系对齐。让我们来看一看:
fig = mne.viz.plot_alignment(
raw.info,
trans=trans,
subject="sample",
subjects_dir=subjects_dir,
surfaces="head-dense",
show_axes=True


2620

被折叠的 条评论
为什么被折叠?



