2.3.2 傅里叶成像理论:模拟K空间(matlab)

MRI 学习笔记,为了方便记录,序号和俎栋林老师、高家红老师编写的《核磁共振成像》一书的序号保持一致,方便翻书对照。
参考
1、《Handbook of MRI Pulse Sequences》 ,MATT A. BERNSTEIN, KEVIN F. KING and XIAOHONG JOE ZHOU
2、《核磁共振成像——物理原理和方法》,俎栋林老师、高家红老师

目录

1)用phantom函数生成头部模拟图
2)根据图像得到K空间
3)根据K空间恢复图像
4)图像平移
5)图像翻转

1)用phantom函数生成头部模拟图

Readout = 200;
[Image,~] = phantom('Modified Shepp-Logan',200);
figure;
imagesc(abs(Image));axis square;
title('Software head phantom')

2)根据图像得到K空间

Kspace =fftshift(fft2(ifftshift(Image)));
figure;
subplot(1,2,1);imagesc(abs(Kspace));axis square;
title('Simulated K-space')
subplot(1,2,2);plot(abs(Kspace));axis square;
title('Simulated K-space')

3)根据K空间恢复图像

I0 = fftshift(ifft2(ifftshift(Kspace)));
figure;imagesc(abs(I0));axis square;
title('2DFFT Reconstructed image')

4)图像平移

ShiftRead = 0;
ShiftPhase = 0.4;
Width = zeros(Readout,1);
for i=1:Readout
    Width(i,1) = complex(cos(i*ShiftRead),-sin(i*ShiftRead));
end
Width = repmat(Width,1,Readout);
Height = zeros(1,Readout);
for i=1:Readout
    Height(1,i) = complex(cos(i*ShiftPhase),sin(i*ShiftPhase));
end
Height = repmat(Height,Readout,1);
KspaceShift = Kspace .* Width.*Height;
ImgShift = fftshift(ifft2(ifftshift(KspaceShift)));
figure;
imagesc(abs(ImgShift));axis square;
title('Shift Image')

5)图像翻转

KspaceFlip = flip(Kspace);
ImgFlip = fftshift(ifft2(ifftshift(KspaceFlip)));
figure;
imagesc(abs(ImgFlip));axis square;
title('Flip Image')
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容