NiftiMapsMasker类是用于将一组Nifti图像转换为一个特征矩阵的类,其中每个列向量代表一个给定的区域的平均信号强度的时间序列。
实例化
实例化需要给定一些参数
masker = NifitMapsMasker(
maps_img = 读取的atlas文件,
standardize = 默认False,是否对每个roi的时间序列标准化,使得每个roi时间序列的均值为0,标准差为1。
memory = 默认无,用于缓存中间结果的内存大小,用于加速计算。可以为字符串如“100M”,也可以为“nilearn_cache”使用默认的nilearn缓存地址。
verbose = int型,是否输出详细的日志信息。
)
masker.fit()函数
fit()函数的功能是估计atlas的mask,并初始化masker对象。具体来说,它将atlas中的mask配准到目标图像上,并保存配准场,方便应用到一组数据当中。
masker.transform()函数
transform函数的作用是将目标图像(4D)转换为一个特征矩阵。具体来说,它将会使用之前使用fit()函数估计出的配准场对目标图像进行掩膜操作,然后计算出每个被掩膜区域的平均信号强度。这些平均值构成了转换后的特征矩阵。
转换后的结果是一个形状为[N, K]的矩阵,其中N是Nifti图像集中的图像数(也就是4D图像中有多少个脑),K是被掩膜区域的数量。(假如一个subject的4D有169个脑,atlas有39个mask,那么transform后产生的矩阵就是[169, 39],表示每个脑有39个roi的均值,一共有169个脑的时间序列)
需要注意的是,在调用transform函数之前,必须先使用fit函数来估计mask并初始化masker对象。否则,transform函数将无法运行。