【核磁共振成像】相位差重建


一、相位差map重建一般步骤和反正切函数主值范围

  MRI是一个相敏成像模态MR原始数据傅里叶变换后的复数图像中每个像素值有模和相位。标准模重建是遗弃相位,只用数值建立图像。然而,编码在相位里有有用的信息
  比如相位map可产生B0均匀度信息,可用于匀场;还可产生流体流动信息,可用于相敏法血管造影;相位信息还可用于体内MR温度分布测量以及MR弹性造影。

  采集两个独立的数据集,然后形成一个相位差map,就 可以解决相位map污染问题。而所谓的相位差map,就是用一对相位像的像素逐个相减得到的,目的是突出所希望的相位,同时对消有害的相位
  从相位像中提取物理参数值不是一个简单事情。因为 很多因素对相位像贡献了不需要的相位,例如梯度涡流化学位移磁化率变化以及伴随场等等。这些不需要的贡献使得相位map受到污染,难以解释,所希望的信息往往被这些有害相位淹没。

   相位差重建 的核心是对每个体素进行反正切运算来产生相位图像(map),反正切函数的输出被定义在一个有限的范围内,称为主值范围。在MRI领域,相位范围一般通过一个四象限反正切函数而扩展到(-π,π]。主值范围以外的相位值被主值内的一个值代表,混叠(alias)。相位map中混叠伴随着不连续性(在±π跃变),叫做相位卷绕
  为提高计算效率,并最小化相位卷绕数,一个最佳相位差重建应该每像素只做一次反正切运算。还有,因为不连续性,希望在计算反正切之前先执行比如相位阵列多线圈数据组合运算和伴随场相位校正运算。
在这里插入图片描述

相位差重建步骤流程

二、反正切运算

  假定已经采集了两个K空间数据,想产生一个相位差map。数据集首先符号交替并填零,然后分别进行傅里叶变换,产生两个独立的复数像
  恢复范围(-π,π]内的相位差值到其真实值的过程称为 相位解卷绕
  因为涡流式依赖于MR硬件的设计和校准的,通常难以预期产生的相位误差的准确的空间依赖。
在这里插入图片描述

相位卷绕

三、可预期相位误差和伴随场的校正

  相位差像形成后,还经常残留着有害的相位误差。如由梯度涡流造成的相位污染,给相位对比度血管造影造成麻烦。因此此类相位误差经常靠实验拟合来校正
  例如,在应该有零相位差的某个区域,比如在一个相位对比度血管造影图中的静止组织,一个恒定相位和线性相位可用相位差像的多项式拟合来确定。因为拟合的相位大概是全部由系统不完善譬如涡流造成的,用后处理可用将其消除。

  其他相位误差,比如由伴随场产生的那些相位误差,可以精确预测,因为它们是基础物理效应(可以由麦克斯韦方程描写),在计算反正切之前校正这些相位误差是有利的
  在反正切运算之前分别应用图像变形校正到实像和虚像的另一个优点是:被变形校正算法引起的图像强度的任何变换都不会影响到相位差map


四、图形变形校正

  由梯度非线性造成的图像变形的校正运算也可用于相位差像。对于多线圈组合,在反正切运算之前应用图像变形校正更是可取的。这是因为图像变形校正是用内插方法比如立方样条的正投影映射。如果在反正切运算之后应用图像变形校正,将会遭遇相位卷绕,并且在图像中其跳变的不连续还会引起多余的上冲。
在这里插入图片描述
  内插相位像的一个缺陷:如果相位像被内插(例如图像变形校正或矩形视野缩小),在混叠边界处会发生上冲(箭头),这种内插过的相位像就不适合解卷绕处理更可取的方法是在反正切之前按内插实像和虚像,而不要内插相位像

### 使用MATLAB实现核磁共振成像MRI)原理仿真 #### MRI基本原理概述 核磁共振成像(MRI)是一种利用原子核在磁场中的行为来进行成像的技术。当人体置于强磁场中时,氢质子会按照外加磁场的方向排列并发生自旋运动。施加特定频率的射频脉冲可以改变这些质子的状态,在停止发射射频脉冲之后,质子返回到原来状态的过程中会产生信号,该信号被接收线圈捕捉后经计算机处理形成图像。 #### MATLAB仿真实现步骤 ##### 创建虚拟环境与参数设定 首先定义一些必要的物理常数以及实验条件下的变量设置: ```matlab % 物理常数 gamma = 2 * pi * 42.58e6; % 氢质子旋磁比 (Hz/Tesla) % 实验条件 B0 = 1.5; % 主磁场强度 Tesla T1 = 900; % 纵向弛豫时间 ms T2 = 100; % 横向弛豫时间 ms TR = 3*T1; % 重复周期 TR > T1*3 TE = min(T2, 0.33*T1); % 回波延迟 TE < T2 && TE < 0.33*T1 FOV = [256 256]; % 扫描视野大小像素单位 N = prod(FOV); % 总采样点数目 ``` ##### 构造k空间填充函数 K空间是一个二维傅里叶变换域表示的空间分布图,它包含了重建最终MR图像所需的信息。下面这段代码展示了如何构建一个简单的梯度回波序列对应的k空间轨迹: ```matlab function kspace = generate_kspace(Nx,Ny) [X,Y]=meshgrid(-floor((Ny-1)/2):floor((Ny-1)/2),... -floor((Nx-1)/2):floor((Nx-1)/2)); R=sqrt(X.^2+Y.^2); theta=atan2(Y,X); kspace=zeros(size(R)); for i=1:Nx*Ny r=R(i)/(max(max(R))); phi=theta(i)+pi/2; t=linspace(0,2*pi,round(sqrt(r)*length(theta))'); x=r*cos(t)'; y=r*sin(t)'; idx=sub2ind([Ny Nx], round(mod(y+Ny/2,Ny))+1,... round(mod(x+Nx/2,Nx))+1 ); kspace(idx)=exp(-j*t).*r; end end ``` ##### 进行数值模拟得到原始信号 根据之前所设参数计算出不同位置处水分子产生的自由感应衰减(FID)信号,并将其映射至相应的k空间网格上完成一次完整的扫描过程: ```matlab fid_signal = zeros(N, length(TR)); for n = 1:length(TR) Mz = exp(-TR(n)./T1); % Z轴方向上的纵向磁化矢量分量随时间演化规律 Mxy = sqrt(1-Mz.^2).*exp(-t./T2); % XY平面内的横向磁矩随着时间演变情况 fid_signal(:,n) = fftshift(ifft2(fftshift(generate_kspace(FOV(1), FOV(2)).* ... repmat(exp(j*(omega.*t)), [size(k_space)])))); end ``` 此处`generate_kspace()`为前面提到过的构造k空间的方法;而`ifft2()`, `fftshift()`则是用来做逆离散傅立叶变换及其移位操作以便于后续可视化展示。 ##### 图像重构显示 最后一步是对采集来的FID信号执行反向FT运算从而获得实际可观察的人体断层解剖结构影像: ```matlab image(abs(fid_signal)) colormap(gray()) axis equal tight off title('Simulated MR Image') colorbar() ``` 以上就是基于MATLAB平台下对MRI工作流程的一个简化版描述[^1]。值得注意的是这只是一个非常基础的概念验证性质的例子,真实的临床应用级MRI系统要复杂得多,涉及到更多高级特性如多通道相控阵列天线技术、并行成像加速策略等。
评论 79
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TJUTCM-策士之九尾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值