| 图源

  图像重采样这个词,可能许多人都会觉得陌生。但是图像放大,图像缩小,图像旋转,图像错切等这些我们熟悉操作背后,增多、减少和移位的像素点值的确定,其实都是通过重采样(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

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

  1. fMRI脑影像特征提取——Pearson相关与低阶功能连接LOFC(dpabi+nilearn)

    | 图源   由于暂未发现MRI扫描对人体的伤害,加上MRI影像的超高空间分辨率,所以MRI脑影像分析理所当然的成为了脑科学研究最重要的手段之一.MRI脑影像主要包括两种,结构MRI脑影像(此后简称s ...

  2. MRI脑影像分析——根据脑图谱获取感兴趣区域mask,以海马体与丘脑为例(matlab+nilearn+nibabel+REST1.8)

    | 图源 脑影像分析中,我们常常会针对性的对某些感兴趣区域进行分析,而对它们进行分析的前提是获取该区域的mask.感兴趣区域可以用以某些坐标为球心的球形区域定义,也可以用脑图谱上对应的某些脑区定义,其 ...

  3. matlab二维图像重采样,使用网格插值对图像重采样

    加载图像 加载并显示图像 ngc6543a.jpg,这是哈勃太空望远镜对行星状星云 NGC 6543 拍摄的图像.此图像显示了几个有趣的结构,如同心气体壳.高速气体喷射和异常气体结.表示该图像的矩阵 ...

  4. MRI脑影像分析——多种工具实现Nifti(*.nii)文件读取、处理与写入——把小舞写进脑海里、6mm半高全宽高斯核平滑脑影像、NIFTI文件合并、算fMRI平均图像

    | 图源   Nifti(Neuroimaging Informatics Technology Initiative,神经影像信息学技术倡议)文件格式,是目前各大神经影像分析工具普遍兼容的体素水平的 ...

  5. 过采样与欠采样图像重采样(上采样下采样)

    参考文章: https://blog.csdn.net/majinlei121/article/details/46742339 https://blog.csdn.net/Chaolei3/arti ...

  6. OpenCV图像缩放插值之BiCubic双三次插值

    图像缩放算法简介 在图像的仿射变换中,很多地方需要用到插值运算,常见的插值运算包括最邻近插值,双线性插值,双三次插值(立体插值),兰索思插值等方法,OpenCV提供了很多方法,其中,双线性插值由于折中 ...

  7. OpenCV 图像采样 插值 几何变换

    转自:http://hi.baidu.com/xiaoduo170/blog/item/6eefc612c9f8e9c6c2fd786f.html InitLineIterator 初始化线段迭代器 ...

  8. VTK修炼之道30:图像重采样_降采样和升采样技术

    1.VTK中的图像重采样实现 图像重采样是指对采样后形成的由离散数据组成的数字图像按所需的像元位置或像元问距重新采样,以构成几何变换后的新图像.重采样过程本质上是图像恢复过程,它用输入的离散数字图像重 ...

  9. 使用CAT进行MRI脑图像分析

    使用CAT进行MRI脑图像分析 MED620122 生物医学工程进展 数据 在所提供的6个T1 MRI数据(男性和女性各3位)上进行分析.根据SPM或CAT所提供的学习资料,边学习边分析这6个数据. ...

最新文章

  1. java 执行javascript_说说如何在 Java 中执行 JavaScript 脚本
  2. HTML5文档结构 摘要
  3. Linux中设置vim自动在运算符号两边加上空格
  4. script的defer和async
  5. 使用 System.Net.Http.Json 简化 HttpClient 的使用
  6. Linux rm命令:删除文件或目录
  7. JVM-内存溢出场景模拟
  8. 计算机无法进系统咋办,主编教您电脑无法进入系统怎么办
  9. 成为谷歌的java程序员首先要做到这五点!
  10. NVIDIA Jetson Xavier NX 计算GPIO编号
  11. 家用WIFI网络摄像头(P2P)安全吗?记一次海思Hi3518方案摄像头的测试
  12. 04 捷联式惯导系统概要
  13. 鲁大师电动车智能排行第二期出炉:哪辆电动车最“聪明”?
  14. Chat Top10 | 实战:参考牛顿冷却定律优化最热问题的排序
  15. http://nianjian.xiaze.com/tags.php?/%E5%B9%BF%E5%B7%9E%E7%BB%8F%E6%B5%8E%E5%B9%B4%E9%89%B4/1/1360241
  16. LDA 与 KNN 算法
  17. 51智能小车前进后退左右旋转
  18. 带选择头像的用户注册页面
  19. 大数据用kettle还是python_kettle大数据抽取实际
  20. WSL登录失败:未授权用户再次计算机上的请求登录类型

热门文章

  1. Android 快别用Toast了,来试试Snackbar
  2. 【LeetCode Python实现】 5473. 灯泡开关 IV(中等)
  3. JSP实用教程——第二章:JSP语法
  4. 2021春深入理解计算机系统大作业---hello的一生
  5. SQL语句实现查询SQL Server服务器名称和IP地址_MsSql
  6. CF 115B. Lawnmower
  7. 解决“C2001:常量中有换行符“编译问题
  8. B. Frog Traveler(cf)bfs
  9. 回车、换行、空格的ASCII码值
  10. dd指令打包iso文件 linux_Linux_如何在Linux操作系统下创建ISO镜像文件,1、用dd命令#dd if=/dev/cdrom - phpStudy...