CT图像重建
20世纪70年代中期,在医学领域出现了一种神奇装置,名为“计算机辅助 X 射线断层成像仪”(简称CAT或CT),它能够在不损伤病人的情况下,提供人体从头到脚各部位的断层X射线图像。利用CT,医生可以轻而易举地观察到人体内部哪怕是极其微小的病变和病灶分布,能够及早采取正确的治疗措施,从而拯救无数患者的生命。
这个神奇装置是如何发明的呢?这就要从科马克接受的一次任务说起。
1955年,还是开普敦大学物理学讲师的科马克接到一项任务,要为南非一家医院的放射科监测肿瘤患者接受放射性同位素治疗的剂量。接受治疗的患者体内的同位素剂量及其分布会受到严格的控制。这是因为如果同位素剂量太小,将达不到理想的疗效;剂量太大,则会危害患者的健康。同时,同位素的浓度应在肿瘤组织内较高,在健康组织内尽可能低。
科马克想,是否可以通过体外测量同位素发出的射线,来确定其在体内的浓度分布,以帮助医师确定最佳治疗方法?他很快发现这其实是一个数学问题,如果这个问题解决了,很多问题都会迎刃而解。1963年,他发表了名为“函数的直线积分表示及其放射学应用”的开创性论文,通过自己的努力解决了这个数学问题。
这篇论文中包括研制CT的完整理论,而且也提到了三个实际应用:①确定二维区域内 X 射线吸收率的变化;②确定物质中正电子湮灭的非均匀分布;③确定恒定成分物质中的密度变化。
其实,早在1917年,奥地利数学家拉东就发表过一篇论文,文中提出一种变换方法,即对于一个定义在一定区域上的函数f,如何从该函数在以不同角度穿过该区域的直线上的积分值,来求得其分布解的变换方法。这个方法后来被称为“拉东变换”。科马克的工作其实就是重新发现“拉东变换”,并把它用于放射医学。
人体内部不同的组织具有不同的X射线吸收率。所以,如果能够知道人体内X射线吸收率的分布,就可以重建体内组织的图像了,这正是CT所要做的。从数学的角度来看,一根直线上的X射线平均吸收率就相当于在该直线上对于吸收率函数的积分值。因此,如果能根据函数在直线上的积分值来求出函数在各点的值,那么,就可以实现CT的功能了。这正是科马克在1963年的那篇论文中所完成的工作。
图像重建
由已知弦图求解CT图像可利用的算法:
直接矩阵求解法(Direct matrix inversion)
迭代法( iterative)
傅里叶重建法(Fourier reconstruction)
反投影法(Back-projection)
滤波反投影法(Filtered back projection)
1、Radon变换揭示了函数和投影之间的关系。
中间圆环是我们想要求的物体,左边是发射源能够发射一种射线,右边为感应器能够感应到射线的强弱,假设物体上每一点对射线的衰减程度为函数f(x,y) ,也可以称f(x,y)为密度函数,根据射线穿过物体的衰减程度可以得到物体在该方向上每一点的衰弱强度(intensity),如上图所示,相当于每个方向上都可以测量出该物体的“厚度”,我们的目的就是,根据不同方向上的物体的“厚度”求出物体上每一点的衰减程度.
如上图所示,转换为数学表达可以表示为一种线积分,直线 L 穿过 f(x,y),所对应的强度(intensity)就是函数f(x,y)在直线 L上的线积分
我们的目标是根据不同的线 L求出 f(x,y)的表达式,但定义里面包含f(x,y)的积分,想要求 f(x,y)的具体形式就要把该积分去掉,前人就想到了用傅立叶变换
前面的描述中说的是“在某一个方向上的每一个点的”衰减程度 → 某一个方向上的每一个点都可以表示为一条直线 L,那么我们需要用该方向来定义直线L,
先来看看 L的定义:
如上图所示,我们设直线方程为 y = kx + b ,直线 L远离原点的法线方向为n→=(cos(θ),sin(θ)),原点到直线的距离为 P ,则如上图公式所示,直线 L可表示为:
可以看到 θ 即为上图所说的方向, P 为该方向上的每一点放射源,则根据 (θ,P) 可以定义 拉东变换
如果我们希望获得这个切片的全貌,我们可能需要从多个角度进行多次扫描,通过一维构建二维,在这里我们可以把对应的和制作成一个二维坐标系来绘图,叫做Sinogram:
右图为Sinogram图,纵坐标为度数(360度等间距划分为300个间隔),横坐标自然是线到原点的距离。也就是说我们通过300次扫描(绕着切片一周)获得了Sinogram。从左边切片到有右边切片的过程我们叫做前向投影Forward Project。
2. 傅里叶切片定理 Fourier Slice Theorem
我们通过不同角度的投射得到了Sinogram。但是请注意,医疗实践中我们对于上图中的左图的信息是一无所知的,我们仅仅获得了右边的Sinogram(也就是说左边是空白)。那么我们如何通过Sinogram获得左边的图呢?
在此假设大家都明白傅里叶变换及其逆变换(如果不清楚的可以寻找相关资料,此为一信号处理方面十分重要的应用),即将时空域的信号转为频率域信号以及将频率域信号复转为时空域信号。傅里叶切片定理规定了如下几个要素:
我们知道我们希望求出f(x,y),那么这个f(x,y)根据某种投影(如拉东变换)再进行一维傅里叶变换,等价于这个f(x,y)的二维傅里叶变换的切片。
在这里解释切片:我们将原函数f(x,y)进行二维傅里叶变换后得到频率域坐标系(可以当作将原来的XY坐标系转移到某种UV坐标系),其切片为按照参数方程在该空间上选定的值,即(该θ角度可以理解成拉东变换的投影角度
为了获取 f(x,y) ,基于我们已经知道的Sinogram(对应上图的 P θ) ,我们可以得到多角度的切片,根据这些切片重新组合较为完整的(实际上我们不可能也不需要填充整个二维傅里叶空间,只需要有限测量的几个投影即可)二维傅里叶空间,再将其进行逆变换获得到f(x,y)
傅立叶变换
在积分形式下得出函数的表达式第一想到的就是傅立叶变换,因为傅立叶变换及其性质里面就有把积分约掉的方法,这里用到的是傅立叶变换的卷积性质,为了能说清楚,自己也清楚一下
卷积:
CT成像:在医学图像成像时,是通过x射线穿过人体来实现的,射线穿过人体后会衰减,然后被仪器测量到,也就是说我们已经知道了拉东变换的结果,需要通过这个结果还原出射线穿过的人体剖面,即拉东逆变换。
其余还有反投影,滤波反投影方法等,反投影算法出现星状伪影的现象,用滤波反投影运用了卷积,弥补了反投影算法的缺陷............
CT图像重建的更多相关文章
- DICOM-RT:放疗领域中的各种影像
背景: DICOM-RT系列博文着眼于DICOM3.0中对放疗领域的补充标准,即DICOM-RT.为了方便兴许对DICOM-RT中相关IOD.SOP概念的理解,专栏最近做了放疗相关知识点的普及. PS ...
- [转] 中国压缩传感资源(China Compressive Sensing Resources)
昨天查压缩感知的资料,无意间看到一位浙大女神Rachel Zhang的博客,果断关注了.我感觉应该向她好好学习.下面转自她的CSDN博客.网址是http://blog.csdn.net/abcjenn ...
- 医学CT图像特征提取算法(matlab实现)
本科毕设做的是医学CT图像特征提取方法研究,主要是肺部CT图像的特征提取.由于医学图像基本为灰度图像,因此我将特征主要分为三类:纹理特征,形态特征以及代数特征,每种特征都有对应的算法进行特征提取. 如 ...
- DICOM图像像素值(灰度值)转换为CT值
CT值的单位是Hounsfield,简称为Hu,范围是-1024-3071.用于衡量人体组织对X射线的吸收率,设定水的吸收率为0Hu. 在DICOM图像读取的过程中,我们会发现图像的像素值有可能不是这 ...
- 关于统计变换(CT/MCT/RMCT)算法的学习和实现
原文地址http://blog.sina.com.cn/s/blog_684c8d630100turx.html 刚开会每周的例会,最讨厌开会了,不过为了能顺利毕业,只能忍了.闲话不多说了,下面把上周 ...
- ct任务添加与中控机批量后台操作
ct 任务nohup sh ./bin/start.sh </dev/null >/dev/null 2>&1 & 中控机批量 for h in `get_hosts ...
- CT值及CT常用窗宽、窗位 [转]
一.常用CT值 CT值的含义是:每个反应管内的荧光信号达到设定的域值时所经历的循环数.研究表明,每个模板的Ct值与该模板的起始拷贝数的 对数存在线性关系,起始拷贝数越多,Ct值越小.利用已知起始拷贝数 ...
- VTK三维重建(2)-根据脚部骨骼CT的三维重建和显示
[效果演示] 根据脚部的骨骼CT扫描的照片,利用VTK完成读取和三维重建. [程序实现] void main () { vtkRenderer *aRenderer = vtkRenderer::Ne ...
- ssh -CT -o BatchMode=yes 用户名@主机名
- CT 来值班,让您安心过新年!
春节,盼了整整一年的节日,我们一定要抛开工作,狠狠的开心,狠狠的幸福,但是作为苦逼的运维,你们真的能完全抛开工作(对网站不闻不问)吗?OneAPM CT 24 小时监控您的网站,让您无忧无虑过新年. ...
随机推荐
- sringboot 调试端口启用的写法
注意 需要在 -jar 的后面加 加在前面貌似没用 $JAVA_HOME/bin/java -Dloader.path=$CAF_MODULE_PATHS -jar -Dspring.profiles ...
- Nginx被它打败了?
Nginx被它打败了? 我们经常使用Nginx作为我们系统的代理,通常情况下是完全够用的,但是有时候业务的复杂性,我们也需要使用在网关中去代理中做一些业务,这个时候Nginx也可以使用lua脚本扩展, ...
- es6默认传参 es5的默认传参
在默认传参在实际中座中还是用的比较多的. 它可以用来解决,用户没有给定值的时候,默认给一个指定的值. es6默认传参 es5的默认传参 //es6 function say(a = 4) { cons ...
- VictoriaMetrics源码阅读:极端吝啬,vm序列化数据到磁盘的细节
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu 公众号:一本正经的瞎扯 源码请看:https://github.com/ahfuzhang/vi ...
- 在K8S中,Pod重启策略有哪些?
在Kubernetes(简称K8s)中,Pod的重启策略定义了当容器失败时kubelet如何处理.有三种主要的重启策略: Always: 这是默认的重启策略.如果设置了为"Always&qu ...
- Gorm 关联关系介绍与基本使用
目录 一 Belongs To(一对一) 1.1 Belongs To 1.2 重写外键 1.3 重写引用(一般不用) 1.4 Belongs to 的 CRUD 1.5 预加载 1.6 外键约束 二 ...
- Linux 系统Apache配置SSL证书
在Centos7系列系统下,配置Apache服务器,给服务器增加SSL证书功能,让页面访问是不再提示不安全,具体操作流程如下. 1.第一步首先需要安装mod_ssl模块,执行yum install - ...
- 谁更适合搭配甜点显卡?i7-13700KF、锐龙7 7800X3D对比:游戏相当 生产力Intel强了50%
一.前言:如果搭配2000元甜点显卡 i7-13700KF和锐龙7 7800X3D谁更有性价比? 现在AMD最受欢迎的处理器无疑是拥有96MB三级缓存的锐龙7 7800X3D,这是一颗专为游戏而生的处 ...
- git常用命令(企业级)
一: 常用git命令 # 初始化,将已有的文件初始化为git仓库 git init # 查询文件状态[绿色暂存区,红色表示工作区更改了,没有提交到暂存区] git status git status ...
- 零基础入门Vue之窥探大法——计算与侦听
前言 在 上一小节 我介绍了我学习vue入门 插值语法 的过程. 在本篇,我将记录我对vue的 计算属性和侦听器 的学习记录 注:本篇对于"侦听"和"监听"是一 ...