图像重采样/插值原理与其在MRI脑影像分辨率修改中的应用——将尺寸为1mm标准模板修改成体素尺寸为3、6、8mm标准模板(FSL、SPM12、NIfTI_20140122、dpabi、nilearn)

news/2025/2/1 17:56:45/

重采样,双线性插值,双三次插值
| 图源

  图像重采样这个词,可能许多人都会觉得陌生。但是图像放大,图像缩小,图像旋转,图像错切等这些我们熟悉操作背后,增多、减少和移位的像素点值的确定,其实都是通过重采样(resample)来完成的。数字图像,是对连续的模拟图像采样后的结果,而由插值理论我们可以知道,由有限像素点的数字图像,我们可以插值出近似的模拟图像。再对该模拟图像按照要求的采样间隔采样,就可以得到符合要求的重采样结果。常用的插值方法有线性插值,双线性插值,双三次插值,样条插值等。对一般图像进行重采样的工具有很多,比如opencv,matlab,PIL等,但本文主要是介绍对MRI脑影像这一特殊图像进行重采样的方法,文中包括FSL、SPM12、NIfTI_20140122(3D或4D)、dpabi、nilearn(3D或4D)五种工具,无论你用python,还是matlab,无论你用windows还是linux都可以用得着。

  工具: FSL6.0.3、SPM12

copyright ©意疏:https://blog.csdn.net/sinat_35907936/article/details/114086796


图像重采样原理


  • 为什么要重采样——哲学

  数字图像不像模拟图像,它除了每个采样点——像素点处有值外,其他地方没有任何图像信息。而如果我们增大或者减小图像分辨率或者改变图像形状,由于涉及像素点的增减移位,变化后的图像的新像素点就可能出现在原先的采样点与采样点之间的位置,比如分辨率从n * n 变成 2n * 2n,则原先采样点与采样点的中间将出现一个新的像素点。下图中A、B、C三点均为新像素点,图源。

  前面说过,数字图像采样点(像素点)与采样点之间没有任何图像信息,而这些新像素点的值又不能凭空产生,那就只能通过周围的像素点值进行估计。常用插值方法插出局部的连续图像,再在连续图像上重采样得到新像素点的值。

双线性插值

  • 如何重采样——技术

  通过插值来实现重采样。插值理论是数值分析中一个重要的板块,它与拟合类似,都是要通过有限的已知点,得到逼近已知点变化规律的连续函数。两者的区别是,插值出来的函数会通过所有已知点,这是符合要求的,因为出现在原来采样点位置上的像素值就应该是原来的值。笔者后面要专门写关于插值的文章,其细节就留到那时再做讨论。

  在数字图像重采样时用的比较多的插值方法有最近邻插值,线性插值和双三次插值等,如图所示,图源。他们需要用到的已知点数是不同的,进而计算复杂度和精度也是不同的。通过图中我们可以看到,插值函数曲线是连续的,通过插值函数我们可以得到两个离散采样点之间任何采样点的值的估计。 图中黑色点就是重采样后的点的值。
重采样,双线性插值,双三次插值


SPM12标准模板重采样


  理论说了一大堆,其实实现起来就是几个按钮和几个函数的问题。脑影像在做配准的时候,会将图像重采样到与参考模板相同的分辨率,所以我们可以用这个工具来实现。MNI官方的T1标准模板都是1mm或者2mm体素尺寸的,但是有的时候我们可能需要其他体素尺寸的标准模板,比如3mm的,此时我们可以用SPM12的Reslice工具来把1mm或者2mm的标准模板重采样到3mm。实际应用中,我们把3mm功能影像配准到T1标准模板时,就需要先对T1标准模板重采样到3mm,以保证维度一致,避免可能出现的错误。

  • 基本操作

  spm->Coregister(Reslice)

在这里插入图片描述
  Image Defining Splace就是参考图像,随便找一个MNI空间的符合体素尺寸要求的nifti图像来作为参考即可。Images to Reslice 即输入图像。插值方法是用的样条插值。

在这里插入图片描述
  笔者用像素尺寸为3mm的AAL_61x73x61_YCG.nii脑图谱作为的参考图像,如下图右,把体素尺寸为1mm的MNI标准模板MNI152_T1_1mm.nii,如下图左,转换成体素尺寸为3mm的MNI标准模板MNI152_T1_3mm.nii。
在这里插入图片描述

  • 结果查看

  用MRIcro查看转换结果:MNI152_T1_3mm.nii。

在这里插入图片描述
  用spm_vol()函数来查看转换结果:MNI152_T1_3mm.nii。

在这里插入图片描述


FSL标准模板重采样


  • flirt线性配准命令

flirt [options] -in <inputvol> -ref <refvol> -out <outputvol>

  同样用体素尺寸为3mm的AAL_61x73x61_YCG.nii脑图谱作为的参考图像,把体素尺寸为2mm的MNI标准模板:MNI152_T1_2mm_brain.nii,转换成体素尺寸为3mm的标准模板:MNI152_T1_3mm_brain.nii,默认采用三线性插值。

flirt -in MNI152_T1_2mm_brain.nii -ref AAL_61x73x61_YCG.nii -out MNI152_T1_3mm_brain.nii# -interp {trilinear,nearestneighbour,sinc,spline}  (final interpolation: def - trilinear) 
  • 结果查看

  用fslinfo查看转换前:MNI152_T1_2mm.nii和转换后:MNI152_T1_3mm.nii的变化情况。

在这里插入图片描述

  用MRIcro查看转换前:MNI152_T1_2mm.nii和转换后:MNI152_T1_3mm.nii的变化情况。
在这里插入图片描述

copyright ©意疏:https://blog.csdn.net/sinat_35907936/article/details/114086796


各体素尺寸的MNI标准模板


链接:https://pan.baidu.com/s/1A_MjRLCT7PSV8hUFYHapCA
提取码:64kc

MNI152_T1_1mm_brain.nii、MNI152_T1_2mm_brain.nii、MNI152_T1_3mm_brain.nii、MNI152_T1_4mm_brain.nii、MNI152_T1_5mm_brain.nii、MNI152_T1_6mm_brain.nii、MNI152_T1_7mm_brain.nii、MNI152_T1_8mm_brain.nii、MNI152_T1_9mm_brain.nii、MNI152_T1_10mm_brain.nii、MNI152_T1_11mm_brain.nii、MNI152_T1_12mm_brain.nii、MNI152_T1_13mm_brain.nii、MNI152_T1_14mm_brain.nii、MNI152_T1_15mm_brain.nii

它们应当覆盖了所有能够用到的体素尺寸,可以作为上述方法的参考模板,也可以直接使用,来自HMM_Task_Download。

在这里插入图片描述


更新


  • NIfTI_20140122脑图谱重采样——数据可以4维

reslice_nii('BN_Atlas_246_1mm.nii','BN_Atlas_246_8mm.nii',8,1,0,2)

  从左到右,第一个为输入图像路径,第二个为输出图像路径,第三个为重采样尺寸,这里为8,表示重采样到8mm的体素尺寸,第五个为插值方法。1:三线性插值(默认),2:最近邻插值,3:Fischer的Bresenham插值。图谱采样为了不增加一些小数,label都是整数,所以一般用最近邻插值。

在这里插入图片描述在这里插入图片描述
  • dpabi脑图谱重采样

  流程
在这里插入图片描述

  结果

在这里插入图片描述在这里插入图片描述
  • nilearn脑图谱重采样——数据可以四维

from nilearn.image import resample_to_img, load_imgtemplate = load_img(r'F:\Lab\MNI152_T1_8mm_brain.nii')   # 参考图像
data = load_img(r'F:\Lab\BN_Atlas_246_1mm.nii')
resampled_img = resample_to_img(data, template)
resampled_img.to_filename(r'F:\Lab\niBN_Atlas_246_8mm.nii')  # 保存重采样后的图像

参考


https://www.youtube.com/watch?v=rvW-D5o3ALA


http://www.ppmy.cn/news/807470.html

相关文章

psv leapftp使用教程,psv leapftp使用教程图解

psv leapftp是一款功能强大&#xff0c;媲美Flshfxp、BulletProof FTP、FFFtp的FTP软件。但小编觉得&#xff0c;比起另外一款ftp工具来说&#xff0c;功能方面还是有些不足。那就是iis7服务器管理工具。 IIS7服务器管理工具支持批量操作&#xff0c;里面的ftp还可以实现定时同…

光场超分辨率论文笔记

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、二、LFT三、四、LFCNN五、LFSR六七八九十十一十二十三十四、An Epipolar Volume Autoencoder with Adversarial Loss for Deep Light Field Super-Resolution十…

MySql存储引擎介绍——InnoDB、MyISAM、Memory

文章目录 1.MySql体系结构2.存储引擎简介3.存储引擎的特点3.1 InnoDB存储引擎特点3.2 MyISAM存储引擎介绍3.3 Memory存储引擎介绍 4.三种存储引擎的特点5.存储引擎的选择6.小结 1.MySql体系结构 2.存储引擎简介 存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式…

RabbitMQ - 单机部署(超详细)

RabbitMQ部署 1.单机部署 我们在Centos7虚拟机中使用Docker来安装。 1.1.下载镜像 方式一&#xff1a;在线拉取 docker pull rabbitmq:3-management方式二&#xff1a;从本地加载 也可以从网上搜索 RabbitMQ 的 tar 包下载下来 上传到虚拟机中后&#xff0c;使用命令加载…

神州无线AC、三层交换机、无线AP连接方法

配置命令如下&#xff1a; AC&#xff1a; User Access Verification Username: admin Password: Username: admin Password: DCWS-6028#conf DCWS-6028(config)#host AC AC(config)#int vlan 1 AC(config-if-vlan1)#ip add 10.1.1.1 255.255.255.0 AC(config-if-vl…

AC AP简单组网

AC AP简单组网 1、LSW1交换机配置2、AC1控制器配置3、初步效果查看3.1、查看PC1获取地址情况3.2、查看AP获取地址情况 4、AC1控制器配置组网5、组网成功验收5.1、查看AP的物理地址&#xff08;dis arp)5.2、ensp模拟的拓扑结果5.3、STA链接到AP网络5.3、查看STA地址及连通性 命…

uni-app实现热更新、全量更新带状态栏进度提示

-----------------------------------uni-app-------------------------------------- checkAppVersion // 版本更新 export function checkAppVersion(_t, isShowWarn false) {// #ifdef APP-PLUS// 若是正在更新不执行if(_t.isShowModal || _t.isUpdate) return;const os_…

n6 tenda 固件_腾达 Tenda N6 刷 TTDW 说明

本帖最后由 黑色蛋挞 于 2013-9-18 08:41 编辑 购入的 Tenda N6 通过恩山高手指导下原厂固件下直接升级 可以升级到tomato_dual_13.05.0041_bcm5357测试版路线如下 感谢此贴高手https://www.right.com.cn/forum/forum.php?modviewthread&tid121657 进行了指导和说明 因本人…