4.4.3 EPI伪影:模拟Nyquist ghost(matlab)

MRI 学习笔记,为了方便记录,序号和俎栋林老师、高家红老师编写的《核磁共振成像》一书的序号保持一致,方便翻书对照。
参考
1、《Handbook of MRI Pulse Sequences》 ,MATT A. BERNSTEIN, KEVIN F. KING and XIAOHONG JOE ZHOU
2、《核磁共振成像——物理原理和方法》,俎栋林老师、高家红老师
3、叶恩茂. 医学磁共振EPI中Ghost伪影消除方法研究[D]. 第一军医大学, 2006.

EPI

平面回波成像序列: Echo Planar Imaging
EPI序列是在一次射频脉冲激励后,利用正反相位连续切换采集信号。严格意义上来讲,EPI不属于序列分类,算是一种信号采集技术,是一种信号读出模式。
磁共振弥散加权成像(Diffusion Weighted Imaging, DWI),是唯一能够活体检测水分子扩散情况的无创影像检查技术,而且也是临床应用最多的一个磁共振功能监测技术。

问题

  1. Nyquist ghost有哪几种情况?
  2. Nyquist ghost在图像域是什么样的?
  3. K空间什么样的操作会造成Nyquist ghost?包括1/2、1/4Nyquist ghost?
  4. 背后原理是什么?

单激发和多激发

单激发 Single-shot 多激发 Multi-shot
O 分辨率受限 O 分辨率高
X 图像形变大 O 图像形变小
X 磁化率伪影重 O 磁化率伪影轻
O 对运动伪影不敏感 X 运动伪影重

单激发是一次射频脉冲激励以后,通过读出信号的方式采集完一副图像所需要的所有K空间相位编码线。最大的有点是快,可以冻结宏观的运动伪影。目前临床EPI序列应用最多的是做DWI弥散,采用的大部分是单激发。所以腹部弥散,可以完全自由呼吸做而运动伪影却不大,因为单激发对运动伪影不敏感。

EPI factor

EPI factor:确定每次激励时收集的Ky线的数量
EPI因子越大,SNR越低,同时还会影响磁化率伪影和图像变形,扫描仪产生的噪音
而EPI序列,如果回波链多了EPI factor也会导致EPI伪影和变形加大;另外,EPI序列没有采用多个180°重聚脉冲聚集信号,对磁化率敏感,容易产生磁化率伪影。

Nyquist ghost

由于磁场的不均匀性,以及EPI通过正反梯度切换快速的读出信号,产生的涡流和化学位移等因素,使得K空间的奇、偶回波之间容易积累相位差,在相位编码方向上产生Ghost伪影。导致图像的变形(distortion)。

奇偶回波产生的K空间偏移方向不同,从而出现相位编码方向得相位震荡,产生Ghost伪影

1、Single-shot 和 Multi-shot 的伪影区别

在 Single-shot 的情况下,图像产生1/2 Nyquist ghosts
在 Multi-shot 的情况下,图像可能会产生1/4 Nyquist ghosts,1/8 Nyquist ghosts,由采集方式决定

2、Three types of Nyquist ghosts

three types of Nyquist ghosts in single-shot EPI:
1)constant-phase ghost :与空间位置无关的相位误差引起的伪影,比如零阶的涡流梯度场和偏离中心视野成像的频率失配
2)linear-phase ghost :频率编码方向上的线性相位误差引起的伪影,比如频率编码方向上的线性涡流场,梯度群时延和梯度放大器的延迟
3)oblique-phase ghost:相位编码方向上的线性相位误差引起的伪影,通常发生在EPI斜采时,产生的原因可能有各方向梯度不一致的涡流特性、群时延以及交叉涡流项

1)constant-phase ghost 恒定相位鬼影

k-space data are shifted \varphi(spatially constant)
I^{\prime}(l, m)=I(l, m) \cos \varphi+i I\left(l, m-\frac{N_{y}}{2}\right) \sin \varphi

2)linear-phase ghost 线性位移鬼影

k-space data are shifted \delta k_{x} = ± u \Delta k_{x}(频率编码方向)
I^{\prime}(l, m)=I(l, m) \cos \left(\frac{2 \pi u l}{N_{x}}\right)+i I\left(l, m-\frac{N_{y}}{2}\right) \sin \left(\frac{2 \pi u l}{N_{x}}\right)
我们可以把K空间,沿着频率编码方向,奇数行向前平移一个点,偶数行向后平移一个点,来达到这种伪影效果。

3)oblique Nyquist ghost 斜奈奎斯特鬼影

k-space data are shifted \delta k_{y} = ± v \Delta k_{y}(相位编码方向)
I^{\prime}(l, m)=I(l, m) \cos \left(\frac{2 \pi v m}{N_{y}}\right)+i I\left(l, m-\frac{N_{y}}{2}\right) \sin \left(\frac{2 \pi v\left(m-N_{y} / 2\right)}{N_{y}}\right)
我们可以把K空间,沿着相位编码方向,奇数行向前平移一个点,偶数行向后平移一个点,来达到这种伪影效果。

Because this ghost is typically observed in oblique EPI scans, it has been called the oblique Nyquist ghost.
Common sources for the oblique Nyquist ghosts include inconsistent eddy current characteristics and group delays among the physical gradient axes (also known as gradient anisotropy; Aldefeld and Bornert 1998) and cross-term eddy currents.

4) a mixture of the ghosts

The combination of a constant-phase ghost and a linear-phase ghost will shift the vertical nodal line away from the image center.
The combination of a linear-phase ghost and an oblique Nyquist ghost can produce a tilted nodal line.

Matlab模拟

Simulated Phantom

定义Read、Phase方向点数

clear;
Readout = 256;
Phaseout = 256;

生成头部模拟图,尺寸为128*128

[P0,~] = phantom('Modified Shepp-Logan',128);

重新构建图像尺寸,填零至256*256

P = zeros(256,256);
P((256-128)/2:(256-128)/2+127,(256-128)/2:(256-128)/2+127) = P0;

figure;% imagesc(abs(P))
subplot(1,3,1);imshow(abs(P),[]);title('Software head phantom')

生成K空间

kspace =fftshift(fft2(ifftshift(P)));
subplot(1,3,2);imshow(abs(kspace),[]);title('Simulated K-space')

从K空间恢复到原图

I0 = fftshift(ifft2(ifftshift(kspace)));
subplot(1,3,3);imshow(abs(I0),[]);title('Reconstructed image')

Image

1、constant-phase ghost

1)1/2 Nyquist Ghost
Constant = 0.2;
ImgConstantPhaseHalf = P;
for j = 1:Readout
    for i = 128:Phaseout-1
        ImgConstantPhaseHalf(i,j) = complex(P(i,j)*cos(Constant),P(i-Phaseout/2+1,j)*sin(Constant));
    end
end
for j = 1:Readout
    for i = 1:127
        ImgConstantPhaseHalf(i,j) = complex(P(i,j)*cos(Constant),P(i+Phaseout/2,j)*sin(Constant));
    end
end
% figure;imshow(abs(ImgConstantPhaseHalf),[]);
% title("1/2 Nyquist Ghost")
2)1/4 Nyquist Ghost
Constant = 0.2;
ImgConstantPhaseQuarter = P;
for j = 1:Readout
    for i = 128:Phaseout
        ImgConstantPhaseQuarter(i,j) = complex(P(i,j)*cos(Constant),P(i-Phaseout/4,j)*sin(Constant));
    end
end
for j = 1:Readout
    for i = 1:127
        ImgConstantPhaseQuarter(i,j) = complex(P(i,j)*cos(Constant),P(i+Phaseout/4,j)*sin(Constant));
    end
end
% figure;imshow(abs(ImgConstantPhaseQuarter),[]);
% title("1/4 Nyquist Ghost")
3)1/2+1/4 Nyquist Ghost
Constant = 0.2;
ImgConstantPhaseHalfQuarter = P;
for j = 1:Readout
    for i = 128:Phaseout-1
        ImgConstantPhaseHalfQuarter(i,j) = complex(P(i,j)*cos(Constant),P(i-Phaseout/4,j)*sin(Constant)+P(i-Phaseout/2+1,j)*sin(Constant));
    end
end
for j = 1:Readout
    for i = 1:127
        ImgConstantPhaseHalfQuarter(i,j) = complex(P(i,j)*cos(Constant),P(i+Phaseout/4,j)*sin(Constant)+P(i+Phaseout/2,j)*sin(Constant));
    end
end
% figure;imshow(abs(ImgConstantPhaseHalfQuarter),[]);
% title("1/2+1/4 Nyquist Ghost")

2、linear-phase ghost

LinearX = 1;
ImgLinearPhase = P;
for j = 1:Readout
    for i = 128:Phaseout-1
        ImgLinearPhase(i,j) = complex(P(i,j)*cos(2*pi*LinearX*j/Readout),P(i-Phaseout/2+1,j)*sin(2*pi*LinearX*j/Readout));
    end
end
for j = 1:Readout
    for i = 1:127
        ImgLinearPhase(i,j) = complex(P(i,j)*cos(2*pi*LinearX*j/Readout),P(i+Phaseout/2,j)*sin(2*pi*LinearX*j/Readout));
    end
end
% figure;imshow(abs(ImgLinearPhase),[]);
% title("Linear Phase")

3、oblique Nyquist ghost

LinearY = 1;
ImgObliquePhase = P;
for j = 1:Readout
    for i = 128:Phaseout-1
        ImgObliquePhase(i,j) = complex(P(i,j)*cos(2*pi*LinearY*i/Phaseout),P(i-Phaseout/2+1,j)*sin(2*pi*LinearY*(i-Phaseout/2)/Phaseout));
    end
end
for j = 1:Readout
    for i = 1:127
        ImgObliquePhase(i,j) = complex(P(i,j)*cos(2*pi*LinearY*i/Phaseout),P(i+Phaseout/2,j)*sin(2*pi*LinearY*(i-Phaseout/2)/Phaseout));
    end
end
% figure;imshow(abs(ImgObliquePhase),[]);
% title("Oblique Phase Ghost")

K-Space

1、constant-phase ghost

1)1/2 Nyquist Ghost
ShiftConstantPhase = zeros(Readout,Phaseout);
ShiftConstantPhase(1:2:256,:) = -0.2*1i;
ShiftConstantPhase(2:2:256,:) = 0.2*1i;
KspaceConstantHalf = kspace .* exp(ShiftConstantPhase);
% figure;
% imshow(abs(fftshift(ifft2(ifftshift(KspaceConstantHalf)))),[]);
% title('1/2 Nyquist Ghost')
2)1/4 Nyquist Ghost
ShiftConstantPhase = zeros(Readout,Phaseout);
ShiftConstantPhase(1:4:256,:) = -0.5*1i;
ShiftConstantPhase(2:4:256,:) = -0.5*1i;
ShiftConstantPhase(3:4:256,:) = 0.5*1i;
ShiftConstantPhase(4:4:256,:) = 0.5*1i;
KspaceConstantQuarter = kspace .* exp(ShiftConstantPhase);
% figure;
% imshow(abs(fftshift(ifft2(ifftshift(KspaceConstantQuarter)))),[]);
% title('1/4 Nyquist Ghost')
3)1/2+1/4 Nyquist Ghost
ShiftConstantPhase = zeros(Readout,Phaseout);
ShiftConstantPhase(1:4:256,:) = -0.5*1i;
ShiftConstantPhase(2:4:256,:) = 0.5*1i;
ShiftConstantPhase(3:4:256,:) = 0.5*1i;
ShiftConstantPhase(4:4:256,:) = 0.5*1i;
KspaceConstantHalfQuarter = kspace .* exp(ShiftConstantPhase);
% figure;
% imshow(abs(fftshift(ifft2(ifftshift(KspaceConstantHalfQuarter)))),[]);
% title('1/2+1/4 Nyquist Ghost')
4)Print Image
figure;
subplot(131);
imshow(abs(fftshift(ifft2(ifftshift(KspaceConstantHalf)))),[]);
title('1/2 Nyquist Ghost')
subplot(132);
imshow(abs(fftshift(ifft2(ifftshift(KspaceConstantQuarter)))),[]);
title('1/4 Nyquist Ghost')
subplot(133);
imshow(abs(fftshift(ifft2(ifftshift(KspaceConstantHalfQuarter)))),[]);
title('1/2+1/4 Nyquist Ghost')

2、linear-phase ghost

KspaceLinear = zeros(Phaseout,Readout);
for i = 2:Phaseout-1
    for j = 2:Readout-1
        if mod(i,2) == 0
            KspaceLinear(i,j) = kspace(i,j-1);
        else
            KspaceLinear(i,j) = kspace(i,j+1);
        end
    end        
end
ImgLinearPhase = fftshift(ifft2(ifftshift(KspaceLinear)));
figure;imshow(abs(ImgLinearPhase),[]);title('Linear Phase(X)')

3、oblique Nyquist ghost

KspaceOblique = zeros(Phaseout,Readout);
for i = 2:Phaseout-1
    for j = 1:Readout
        if mod(i,2) == 0
            KspaceOblique(i,j) = kspace(i-1,j);
        else
            KspaceOblique(i,j) = kspace(i+1,j);
        end
    end        
end
ImgObliquePhase = fftshift(ifft2(ifftshift(KspaceOblique)));
figure;imshow(abs(ImgObliquePhase),[]);title('Oblique Phase Ghost(Y)')

4、a mixture of the ghosts

KspaceMixture = zeros(Phaseout,Readout);
for i = 2:Phaseout-1
    for j = 1:Readout
        if mod(i,2) == 0
            KspaceMixture(i,j) = kspace(i-1,j)*exp(0.5*1i);
        else
            KspaceMixture(i,j) = kspace(i+1,j)*exp(-0.5*1i);
        end
    end        
end
ImgMixturePhase = fftshift(ifft2(ifftshift(KspaceMixture)));
% figure;imshow(abs(ImgMixturePhase),[]);title('Mixture Ghost')
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,525评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,203评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,862评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,728评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,743评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,590评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,330评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,244评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,693评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,885评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,001评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,723评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,343评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,919评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,042评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,191评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,955评论 2 355