用 MATLAB 实现的计算机CT断层扫描图像重建项目源码

完整源码资源下载链接

计算机断层扫描图像重建

介绍

计算机断层扫描是堆叠在一起的 X 射线图像的集合,以获得作为诊断图像第三维的深度信息。这些"堆叠的" X 射线图像作为正弦图从 CT 机架接收,代表对象单层的 X 射线吸收剖面。该项目的目标是重建该单层的原始 2D 图像,并使用光衰减信息区分受试者组织的不同 X 射线吸收水平。

下面我们看到一个示例,说明如何通过 X 射线束穿过身体(左)的横截面层来形成正弦图(右),每个角度的 X 射线吸收都会生成衰减曲线图。

项目详情

对象在 CT 机架旋转的每个角度处的 X 射线投影都会生成正弦图,其中 Y 轴显示以度为单位的角度,而 X 轴显示空间距离。

我创建了一个示例正弦图,该项目的目标是构造其相应的幻像对象。我们将确定通过体模内不同层的 X 射线衰减,从而获得物体的物体密度分布。

输入正弦图 输出应该接近
​编辑

第零时刻

如上图所示,第 0 时刻是 X 射线首次以每个角度照射 CT 探测器时的响应。这将是每个角度(X 轴)处的衰减幅度(Y 轴)的总和,因此将是正弦图 256 个角度投影列中每一个的总和。

它是一条平坦的线的显着结果是因为无论从哪个角度进行投影,由于物体特征是静态的,衰减强度的总和将是恒定的。

简单的背投影图像

简单的反投影是通过将投影叠加在一起来计算的,这为图像的所有组件创建了浓度梯度。单列将包含单个角度投影的衰减信息。总共有 256 个角度投影,对应于正弦图上显示的 180 度。

因此,我们一次选择一列,将衰减幅度信息涂抹在 128 行上,然后将其旋转到与以度为单位对应的角度(第 256 个投影对应于 180 度,因此第 n 个投影将对应于 n*180/256 度) 。

与真实输出图像还不够接近,但肯定更近了一步! 每次将新的投影涂抹添加到旧的投影涂抹时,都会一次又一次地添加特定的"灰度"。这使得在背投图像上暗点显示相对较暗,而亮点则显示相对较亮。

拉姆拉克过滤器

为了执行正弦图的滤波反投影,我们需要构建将在频域中使用的滤波器。这将帮助我们轻松地将其乘以傅里叶变换的正弦图,而不是执行卷积。然后将滤波器响应与傅立叶变换(和移位)正弦图相乘。结果是频域中的 Ram-Lak(高通滤波器)滤波正弦图,且所有零频率均居中。

为了获得原始频率分布,我们先进行逆傅里叶位移,然后对其进行逆傅里叶变换,以获得空间域正弦图。我们看到滤波器响应如何比未滤波的对手更具选择性,并且我们可以看到当检测到边缘时存在幅度尖峰。

过滤正弦图 过滤后与原始

与我们简单的背投影图像相比,我们看到 Ram-Lak 滤波器能够去除低频噪声(雾霾),提高对比度,从而提高总信噪比。分辨率似乎也有所提高,但主要是由于清晰度的提高和对比度的提高。

与汉明比较

我们还可以探索 MATLAB 的内置函数来执行此操作。为此,我们使用 Radon 和逆 Radon 变换。

theta=0:180;

R,rad_angles=radon(phantom,theta); % as shown in radon help file

imagesc(rad_angles,theta,R'); colormap('gray');

title('Sinogram Generated Using radon Function')

xlabel('Position')

ylabel('Angle')

RamLak_filtered=iradon(R, theta, 'linear','Ram-Lak', 1.0, size(phantom,1));

imagesc(RamLak_filtered); colormap('gray');

title('Filtered Backprojection Using iradon Function and Ram-Lak Filter')

xlabel('Position')

ylabel('Position')

Hamming_filtered=iradon(R, theta, 'linear','Hamming', 1.0, size(phantom,1));

imagesc(Hamming_filtered); colormap('gray');

title('Filtered Backprojection Using iradon Function and Hamming Filter')

xlabel('Position')

ylabel('Position')

Ram-Lak 滤波输出 汉明滤波输出

Ram-Lak 滤波器是高通滤波器,与中频通 Hamming 滤波器相比,我们看到 Ram-Lak 滤波后的图像比 Hamming 滤波后的图像具有更清晰的特征。因此,为了使医学图像具有更好的清晰度和分辨率,Ram-Lak 滤波器会更适合。

相关推荐
科研小牛马2 分钟前
北航何静:Codex调用SketchUp实操,常见智能体均适用
人工智能
机器人梦想家5 分钟前
【AI工具】Task Kit:把 Spec Kit 的契约化思想搬来管日常工作
人工智能
ck0135796 分钟前
图片抠图怎么做?从背景去除到透明 PNG 的实用教程
人工智能·测试工具·音视频·媒体·视频
美狐美颜sdk14 分钟前
直播APP接入第三方视频美颜SDK安全吗?数据处理与隐私问题分析
人工智能·音视频·美颜sdk·第三方美颜sdk·视频美颜sdk·美颜api
liferecords16 分钟前
Xiaomi-OCR-0:小米把 1.7 亿样本灌进 0.8B 小模型,文档解析和 OCR 问答一把抓
人工智能·大模型·ocr·多模态
全栈开发圈16 分钟前
新书速览|让AI推荐你的品牌:GEO营销实践
人工智能
weixin_5118404717 分钟前
2026年10月14日 Cisco and Nvidia 联合 USFP 调研报告
网络·人工智能·市场分析
智圣新创0118 分钟前
消解教学质控供需错配:智圣新创AI智慧教学与督导管理平台全域效能升级建设指南
人工智能
霸道流氓气质22 分钟前
AI智能博客平台实战:RAG增强写作、多Agent协作与语义检索的Vue3 + Spring AI全栈实现
java·人工智能·spring
ting945200024 分钟前
Monid 深度技术解析:面向 AI 智能体的统一工具路由网关实现与工程实践
人工智能·架构