• 胸片和CT断层图像是怎么来的?


    本文作者系医科大学青年教师,关注公众号“计算机视觉life”菜单栏回复“医学” 进群交流

    如何得到CT断层图像?

    相信小伙伴体检的时候都拍过胸片,假如哪个不幸的小伙伴胸片有点“小问题”的话呢,还要再拍个CT图像让医生仔细看一下,那么这些图像有什么区别呢?又是如何得到的呢?今天我给大家简单介绍一下。

    首先,胸片和CT图像长什么样子呢?

    左图是我们平常所说的胸片,右边就是CT的断层图像。左边只有一张图片,相当于把人变成透明的,可以看到身体的内部,所以我们叫它透视像。拍这种透视的胸片的过程,我们称为普通X照相。右边是一系列图像,每一张图像都相当于把身体某一层切开看到的图像,所以我们称它为断层像。这种断层像,是用CT断层扫描得到的。


    那么这些图像怎么得到的呢?

    自然都是用医院放射科的机器扫描出来的啦。这些机器都会发出X射线,在穿透人体之后被X射线的探测器捕捉到(与我们的相机捕捉自然光的原理相似)。因为人体不同的器官对X射线的透过率不一样,所以我们就得到了一副能反映人体结构的图像啦。

    下面这张图像向我们展示了胸片(透视像)的获取原理。

    神奇的CT断层扫描又是怎么回事呢?

    在CT扫描的时候,假设医生想看你身体某一层的断层图像,就会用CT围着你身体的那一层转上一圈。一般来说,医生会一次性扫描很多层(一两百层)来获取你身体某个部位的一系列断层图像。

    为什么转上一圈就知道身体里面长什么样子了呢?

    这主要是CT重建算法的功劳啦。

    CT重建算法原理

    接下来给大家简单介绍一下CT的重建算法。

    射入人体的X射线,穿过人体之后会有一部分透射出来,被探测器捕捉到。我们用吸收系数($mu $ )来表示X射线在人体内的衰减量。

    我们将人体需要扫描的那一层划分成很多个内部均匀的小单元(称为体素,也就是像素加上扫描的那一层的厚度)

    假设入射人体的X射线的强度为 ({I_0}), 时,透过人体的X线强度为 (I) ,每个小单元的吸收系数分别为

    [{mu _1},{mu _2}, cdot cdot cdot cdot cdot cdot ,{mu _n} ]

    每个小单元的长度为(l) 。透射线与入射线之间有这样的一个关系:

    [I = {I_0}{e^{ - left( {{mu _1} + {mu _2} + cdot cdot cdot cdot cdot cdot + {mu _n}} ight)l}} ]

    变换一下:

    [{mu _1} + {mu _2} + cdot cdot cdot cdot cdot cdot + {mu _n} = - frac{1}{l}ln frac{I}{{{I_0}}} ]

    ({I_{ m{0}}})(I)(l) 都可以通过CT知道,也就知道 ({mu _1} + {mu _2} + cdot cdot cdot cdot cdot cdot + {mu _n}) 了。

    为了建立CT图像,必须先求出每个小单元体的吸收系数 $mu $ 。

    数学角度上讲,对于n个吸收系数 $mu $ ,需要至少建立如上式那样n个或n个以上的独立方程。因此,CT装置要从不同方向上进行多次扫描,来获取足够的数据建立求解吸收系数的方程。

    举个例子:

    我们要得到这个由四个小单元组成的物体的断层图像,就要从四个方向扫四次,得到四个由未知的吸收系数建立的方程,就可以求出来四个吸收系数了。

    人体的不同组织对X射线的吸收系数不同,不同的吸收系数转化成不同的灰度值显示出来,我们就得到了一张断层图像啦。

    有了CT断层图像,医生就可以看到病人身体内的结构,及时的诊断疾病了。目前,CT是在临床上应用最为广泛的医学成像设备了,在很多疾病的早期诊断上功不可没。

    最后,让我们膜拜一下两位因发明CT而共同得到诺贝尔生理学或医学奖的大神科学家:Hounsfield和Cormack。

    Hounsfield和Cormack

    Hounsfield是一位英国工程师,Cormack是美国物理学家。顺便提一句,因发现X射线而获得诺贝尔物理学奖的伦琴是德国的物理学家。

    学理工科的小伙伴加油吧,我们也可以给医学领域带来改变哦。

    医学图像处理交流群

    本文作者系医科大学青年教师, 对医学图像处理感兴趣的小伙伴可以在计算机视觉life公众号菜单栏回复“医学” 进群交流哦。

  • 相关阅读:
    装饰模式
    You can't specify target table 'a' for update in FROM clause
    Spring事务知识点
    JAVA中的volatile关键字
    验证HashSet和HashMap不是线程安全
    ZYNQ7000 通过FPGA Manager加载比特流
    verilog中可综合的task使用
    verilog条件编译
    Vivado debug异常现象
    Matlab相关函数使用
  • 原文地址:https://www.cnblogs.com/CV-life/p/10069114.html
Copyright © 2020-2023  润新知