Matlab中基于反投影的笛卡尔坐标CT图像重建问题咨询
CT正弦图重建图像的坐标转换与求和问题
我正在进行从正弦图重建CT扫描图像的练习,基于中心切片定理,先对零填充后的正弦图执行一维FFT:
sino_fft = fftshift(fft(fftshift(sinogram)));
随后通过二维逆FFT恢复反投影:
backprojection = fftshift(ifft2(fftshift(sino_fft)));
现在需要将极坐标形式的反投影转换为笛卡尔坐标,以此重建灰度图像,但不清楚具体实现方法。backprojection是双精度复数类型,我尝试用以下代码将其转换为x-y坐标:
theta = 0:180/(size(backprojection,1)-1):180; [x,y] = pol2cart(theta,abs(backprojection));
得到的是散点数据集。练习提示需要从所有角度迭代求和以得到重建图像,但我不理解该操作,直接执行image = x+y得到的是空白灰度图像。
结果图说明
- 初始反投影结果图:

补充说明
在@Christoph Rackwitz评论后补充:
- 移除
sino_fft和backprojection中的内层fftshift,会得到分裂的傅里叶变换结果:
- 使用原代码会得到居中的傅里叶变换结果:

内容的提问来源于stack exchange,提问作者Shika93
相关产品推荐
相关产品推荐

