核医学基础物理/核医学中的计算机
这是一本名为核医学基础物理的维基教科书中的一个正在开发的章节。
如今,计算机广泛应用于核医学的几乎所有领域。我们主要应用于图像采集和处理。本章概述了通用数字图像处理器的设计,并简要介绍了数字成像。
在考虑这些主题之前,需要对计算机处理信息的格式以及支撑计算机发展的技术进行一些概括性的评论,以便为我们的讨论提供一个背景。
如今,几乎所有使用的计算机都是基于对以二进制数形式编码的信息进行操作。二进制数只能取两种值之一,即 0 或 1,这些数字被称为二进制位——或者使用计算机术语称为位。当一块信息表示为一系列位时,该序列被称为字;当该序列包含八位时,该字被称为字节——字节今天通常用作表示二进制编码信息量的基本单位。此外,大容量的编码信息通常以千字节、兆字节等表示。需要注意的是,这些前缀的含义可能与其传统含义略有不同,因为信息编码的二进制性质。因此,在计算机术语中,千可以表示 1024 个单位——1024(或 210)是最接近一千的 2 的幂。因此,1 千字节可以指 1024 字节的信息,1 兆字节可以表示 1024 乘以 1024 字节。为了增加一些混乱,一些硬件制造商将兆字节称为 100 万字节,而千兆字节称为 10 亿字节。看来这不是一个简单的世界!
需要对图像信息进行二进制编码,以便将图像存储在计算机中。然而,大多数用于医学的成像设备生成的图像信息可以在预设限制之间取连续范围的值,即信息以模拟形式存在。因此,有必要将此模拟信息转换为将图像输入计算机时二进制编码所需的离散形式。这通常是通过使用一种称为模数转换器(ADC)的电子设备来实现的。此外,由于医学中使用的许多显示和摄影设备是为处理模拟格式的图像而设计的,因此在使用数模转换器(DAC)从计算机输出图像时,需要将离散的二进制数据重新转换为模拟格式。
现代计算机的发展几乎完全依赖于过去三十年左右发生的材料科学和数字电子技术的重大发展。这些发展使高度复杂的电子电路能够压缩到称为集成电路的小型塑料封装中。这些封装包含经过特殊制造的微小硅片(或其他半导体材料),用于执行复杂的电子过程。这些硅片通常被称为硅片。在芯片电路内部,相对较高的电子电压可以用来表示数字“1”,而相对较低的电压可以用来表示二进制数字“0”。因此,该电路可用于处理以二进制数形式编码的信息。
这些电子元件的一个重要特性是电路不同部分中两个电压电平可以改变的极高速度。这使得计算机能够快速地操作二进制信息。此外,现代集成电路的小尺寸使得制造出物理尺寸很小的计算机成为可能,并且这些计算机不会产生过量的热量——以前几代计算机占据了整个房间,由于使用的是诸如真空管和晶体管等较大的电子元件,因此需要冷却。因此,现代计算机能够安装在办公桌上,并且其环境不需要空调。此外,使用大规模生产方法制造集成电路的能力导致成本大幅下降——这促成了近年来这项技术的惊人爆炸式增长。
在开始之前,值得注意的是,鉴于该领域的持续快速发展,本章中的信息很可能在本章被阅读时发生变化。因此,这里的处理侧重于一般概念——您应该注意,当前的技术和方法可能与这里描述的不同。此外,请注意,本章中提及任何硬件或软件产品并不表示对该产品的支持,其在此讨论中的使用纯粹是为了说明目的。
下图显示了通用计算机主要硬件组件的框图。它表明,计算机包含一个称为总线的中央通信路径,专用电子组件连接到该路径。下面简要描述了每个组件。
中央处理器 (CPU) 在许多现代计算机中,该组件基于称为微处理器的集成电路。它的功能是充当计算机的大脑,在其中解释和执行指令,以及操作数据。CPU 通常包含两个子组件——控制单元 (CU) 和算术/逻辑单元 (ALU)。
控制单元用于解释包含在计算机程序中的指令以及执行这些指令。例如,这些指令可能用于将信息发送到计算机的其他组件以及控制这些其他组件的操作。ALU 主要用于使用数学技术操作数据——例如,将两个数字相加或相乘。
单个微处理器的重要特性包括字长、体系结构、编程灵活性以及速度。速度的一个指标是时钟频率,下表给出了常用微处理器的时钟频率值。请注意,时钟频率本身并不能完全反映计算机的性能,因为还需要考虑其他组件的规格。
微处理器 | 制造商 | 时钟频率 (MHz) | 示例微型计算机 |
---|---|---|---|
奔腾 | 英特尔 | 60-200 | IBM-PC 兼容 |
PowerPC 604e | 摩托罗拉 | 160-350 | Power Macintosh |
Turbo SPARC | 太阳 | 170 | SPARC Station 5 |
STP1031LGA | 太阳 | 250 | Ultra SPARC II |
奔腾 II | 英特尔 | 233-450 | IBM-PC 兼容 |
PowerPC 750 | 摩托罗拉 | 233-500 | Power Macintosh |
Alpha 21164 | DEC | 300-625 | DEC Alpha |
奔腾 4 | 英特尔 | 1,300-1,700 | IBM-PC 兼容 |
主内存 该组件通常由大量集成电路组成,这些集成电路用于存储计算机用户当前需要的的信息。该电路一般分为两种类型——随机存取存储器 (RAM) 和只读存储器 (ROM)。RAM 用于短期存储信息。它是一种易失性内存形式,因为当计算机的电源关闭时,其信息内容会丢失。其内容也可以快速擦除——并快速填充新信息。另一方面,ROM 是非易失性的,用于永久存储计算机操作的基本方面所需的信息。
辅助存储器 该组件用于以永久或可擦除形式存储信息,以供长期使用,即用于用户当前不需要的信息,但可能在以后某个阶段有用。有各种类型的设备用于辅助存储器,其一些特性总结在下表中。为了便于比较,RAM 也包括在表中。
所用技术的类型通常基于磁性材料——类似于用于高保真系统中的录音的材料。在此,通过控制存储材料不同点的局部磁性来存储信息,并通过检测该磁性来检索信息。如预期的那样,局部磁性可以假设两种磁性状态之一,因为编码信息的二进制特性。使用诸如塑料磁带和磁盘之类的材料,这些材料已被涂覆一层磁性材料。 磁带 通常由开卷轴或封闭式盒带组成,而磁盘通常由软盘(或 **软盘**)或由更硬的塑料制成的磁盘组成。 软盘,与磁带一样,可以从计算机系统中取出,并用于信息的外存储。 记忆棒 也可以用于此目的。它们还允许在计算机之间传输信息的功能。 硬盘 另一方面,通常固定在计算机内部,因此不能轻松取出——虽然可移动版本也在使用,例如 iPod 和类似设备。
设备 | 容量(兆字节) | 访问时间 | 可擦除? |
---|---|---|---|
磁带 | 500-16,000 | 分钟 | 是 |
软盘 | 0.3-1.5 | 200-500 毫秒 | 是 |
硬盘 | 1,000-300,000 | 20-80 毫秒 | 是 |
可移动硬盘 | 100-100,000 | 100-200 毫秒 | 是 |
光盘 | 250-4,700 | 100-500 毫秒 | 是/否 |
RAM | 256-4,000 | 10-100 纳秒 | 是 |
我们对材料的磁性和光学特性的理解的最新进展导致了所谓的 光盘 的生产——它类似于用于高保真系统中的光盘(**CD**)。三种类型的光盘可供使用:包含软件公司提供的程序的光盘(如 **CD-ROM** 磁盘),那些可以由用户写入一次的光盘(如 **CD-R** 磁盘)以及那些可擦除的光盘(如 **CD-RW** 磁盘和磁光盘)。数字多功能光盘(**DVD**)很可能是 CD-ROM 的继任者——第一代存储容量为 4,700 兆字节(4.7 千兆字节),第二代预计为 17,000 兆字节(17 千兆字节)。
磁带和磁盘作为辅助存储介质之间的一般区别在于 顺序 访问存储在磁带上的信息的性质,与磁盘提供的 随机 访问性质形成对比。因此,基于磁盘的媒体通常比基于磁带的媒体更快地存储/检索信息。因此,许多现代辅助存储设计基于硬盘磁盘进行例行信息存储,使用软盘备份少量信息,使用光盘备份大量信息。
**输入/输出设备** 这些组件用于用户控制计算机,通常包括 键盘、 显示设备 和 打印机。这里使用了各种技术——然而,细节超出了本章的范围。这些组件还包括诸如 鼠标、 操纵杆 和 触控板 之类的设备,这些设备用于增强用户与计算机的交互。
**计算机总线** 这包括计算机组件的通信路径——其功能类似于中枢神经系统。沿着 总线 传输的信息类型包括指定数据和控制指令以及信息要存储/检索的内存地址的信息。可以预见,计算机的运行速度取决于此通信链路的运行速度。此速度必须与其他组件(如 CPU 和主内存)的速度兼容。
软件
[edit | edit source]计算机技术不仅仅是电子硬件。为了使电子元件的组合能够运行,需要数据和计算机指令形式的信息。此信息通常称为 **软件**。计算机指令通常包含在 计算机程序 中。
计算机程序的类别包括
- **操作系统**——用于操作计算机和管理计算机的各种资源。 操作系统 的示例包括 Windows、MacOS X、Linux 和 UNIX;
- **应用程序包**——供计算机的常规用户使用。这些软件包包括用于文字处理(例如 MS Word)、电子表格(例如 MS Excel)、数据库(例如 FileMaker Pro)、图形(例如 Adobe Illustrator)和数字图像处理(包括用于操作特定医学成像扫描仪的软件)的程序;
- **编程软件包**——用于编写程序。用于编写程序的常见计算机语言的示例包括 C(及其许多变体)和 Java。为了编写此类程序,需要一些额外的软件。这些包括
- 用于将程序文本写入计算机的 **编辑器**(类似于用于文字处理的程序);
- 用于操作特定常见功能的子程序的 **库**;
- 用于将用户编写的程序链接到子程序库的 **链接器**;
- 用于将用户编写的程序翻译成计算机可以直接理解的形式的 **编译器** 或 **解释器**,即用于以数字格式编码指令。
数字图像处理器
[edit | edit source]用于数字图像处理的计算机除了通用计算机中使用的组件外,通常还包含一些专门的组件。由于图像中包含大量信息,因此需要高容量存储介质以及非常高速的通信和数据处理能力,因此需要这些专门组件。 数字图像处理 包括图像数据的处理和此类信息的分析。图像处理的一个例子是计算机对图像的增强,以便更清晰地显示细微特征。图像分析的一个例子是提取表示所研究解剖区域功能方面的指数。大多数医学成像系统提供广泛的图像处理功能,以及有限范围的图像分析功能。用于处理核医学图像(包括 SPECT 和 PET)的系统还提供广泛的数据分析功能。这种情况的出现是因为核医学强调功能,而不是解剖结构。
下图显示了一个通用的数字图像处理器。图底部阴影部分是上述通用计算机的组件。数字图像处理组件是连接到图像数据总线的那些组件。这些额外的组件中的每一个将在下面简要介绍。图顶部阴影部分是医学成像系统中广泛使用的外部设备。
**成像系统** 这是产生主要图像信息的设备。这些设备的示例包括 CT 扫描仪、 超声仪、 X 射线透视系统、 MRI 系统、 伽玛相机、 PET 扫描仪 和 计算机放射成像系统。该设备通常与其他组件物理分离,如 CT 扫描仪,但也可能安装在与其他组件相同的机柜中——超声仪就是这样。成像系统产生的图像信息被馈送到数字图像处理器的图像采集电路。
数字图像处理器到成像系统的连接通常也存在,用于控制成像系统运行的特定方面,例如 SPECT 相机的机架移动。为了清晰起见,这些额外的连接未在图中显示。
图像采集 此组件用于将成像系统产生的模拟信息转换为二进制数字形式。用于此目的的设备类型称为模数转换器 (ADC)。图像采集组件还可以包含用于操纵数字化数据的电路,以校正任何成像像差。可用于此目的的设备类型称为输入查找表。此类数据操作的示例包括超声机上的预处理功能和数字荧光造影系统中的对数图像变换。
图像显示 此组件有时被称为显示控制器,其主要用途是将数字图像转换为适合视觉显示设备的形式。例如,当使用CRT 监视器时,它包含一个数模转换器 (DAC),当使用数字显示器(如LCD 监视器)时,它包含一个数字视频接口 (DVI)。图像显示组件还可以包含用于操纵显示图像的电路,以增强其外观。可用于此目的的设备类型称为输出查找表。此类数据操作的示例包括超声机上的后处理功能和核医学系统上的窗口功能。图像显示组件提供的其他形式的图像处理可以包括图像放大、图像旋转/镜像以及在一个屏幕上显示多个图像的功能。此组件还可以允许用患者姓名和与患者检查相关的详细信息对显示的图像进行标注。
图像内存 此组件通常由一块 RAM 组成,其容量足以存储用户当前感兴趣的多个图像。
图像存储 此组件通常由磁盘组成,其容量足以存储大量用户当前不感兴趣的图像,这些图像可以在需要时传输到图像内存。
图像 ALU 此组件由专门用于处理图像数据的 ALU 组成。它通常用于相对简单的计算,例如DSA 中的图像减法以及通过对一系列图像进行平均来减少噪声。
阵列处理器 此组件由电路组成,这些电路设计用于更复杂地操纵图像数据,并且速度高于图像 ALU。它通常包括一个额外的 CPU 以及专门的高速数据通信和存储电路。它可以被视为一台独立的专用计算机,其设计以牺牲操作灵活性为代价来提高计算速度。这种增强的速度是由并行操纵数据的能力而不是顺序操纵数据的能力提供的(这是一种在通用计算中广泛使用的方法)。例如,该阵列处理器用于计算快速傅里叶变换 以及用于横断面成像模式(如 CT、SPECT 和 MRI)中的图像重建 计算。
图像数据总线 此组件由专为图像数据设计的超高速通信链路组成。
图像的数字化通常包含两个并行过程——采样 和量化。这两个过程将在下面简要描述,随后将考虑数字图像的存储要求。
图像采样 此过程用于对图像中的空间信息进行数字化。它通常通过将图像划分为一个正方形或矩形的采样点阵列来实现。每个采样点被称为图像元素——或者使用计算机术语来说是像素。
该过程可以概括为将模拟图像数字化为 N x N 像素数据阵列。N 的示例值包括:核医学扫描的 128、CT 和 MRI 扫描的 512、DSA 图像的 1024 以及计算机放射图像和数字放射图像的 2048。请注意,由于现代计算技术的二进制特性,N 的值是 2 的整数次幂。
当然,像素数量越多,数字化图像的空间分辨率就越接近原始模拟图像的空间分辨率——参见下面的图像。
图像量化 此过程指的是对图像中亮度信息的数字化。它通常通过用一个值与其亮度成正比的整数来表示像素的亮度来实现。这个整数被称为“像素值”,系统可以处理的可能像素值的范围被称为灰度级。当然,灰度级越高,数字化图像中的亮度信息就越接近原始模拟图像的亮度信息——参见下面的图像。
该过程可以被认为是将图像亮度数字化为 G 个灰度。G 的值取决于信息的二进制编码特性。因此,G 通常是 2 的整数次幂,即 G=2 m,其中 m 是一个整数,它指定了存储所需的位数。G 的示例值包括:超声检查中的 256 (m=8)、DSA 中的 1024 (m=10) 和核医学中的 4096 (m=12)。
数字图像分辨率 以数字格式表示图像所需的位数 b 由下式给出
下表显示了以不同空间分辨率对图像进行数字化以获得一系列灰度级所需的位数。可以看出,要实现医学成像中使用的分辨率,需要非常大的值(您可以通过练习来确认表中带星号的值代表 0.25 兆字节)。因此,存储这些图像所需的计算机内存量非常大,并且处理如此大量数据时,处理时间可能相对较长。数字图像的这一特点导致需要专门用于图像数据的硬件,这些硬件与通用计算机的组件分开,正如我们上面所描述的那样——尽管随着技术的不断发展,这种区别正在逐渐消失。
N x N | m = 8 | m = 10 | m = 12 |
---|---|---|---|
128 x 128 | 131,072 | 163,840 | 196,608 |
256 x 256 | 524,288 | 655,360 | 786,432 |
512 x 512 | 2,097,152* | 2,621,440 | 3,145,728 |
1024 x 1024 | 8,388,608 | 10,485,760 | 12,582,912 |
2048 x 2048 | 33,554,432 | 41,943,040 | 50,331,648 |
对比度增强 作为数字图像处理的一种非常常见的形式(也称为窗口)的示例,将在下面进行描述。它只是现代系统上提供的大量数据操作过程中的一个。对比度增强是一种灰度级变换形式,其中图像中实际的像素值被处理后的像素值替换,用于显示目的。
该过程通常使用数字图像处理器的图像显示组件的输出查找表部分执行。因此,图像内存中的原始数据不会受到此过程的影响,因此从操作的角度来看,可以在获得不令人满意的输出图像的情况下轻松检索原始图像数据。此外,该过程可以使用现代电子技术以非常高的速度实现,因此,从操作的角度来看,可以实现用户交互。
以下图示了可用于对比度增强的查找表 (LUT) 的示例。此信息通常使用存储在图像内存中的实际像素值与用于显示目的的像素值的图形来表示。该过程通常使用数字图像处理器的控制台上的两个控件来控制——电平控件和窗口控件。需要注意的是,不同系统之间这些控件的名称及其确切操作可能存在差异,但这里描述的通用方法足以满足我们的目的。从图中可以看出,电平控制着低于该阈值的像素显示为黑色的阈值,而窗口控制着类似的阈值,用于白色输出。这两个控件的同步使用允许应用可变宽度的灰度级窗口,该窗口可以放置在灰度级的任何位置。因此,图像中细微的灰度级变化可以得到增强,从而以更高的清晰度进行显示。在核医学中,这种形式的数字图像处理的常见应用是从图像中去除背景计数。
核医学中使用的其他形式的对比度增强包括使用具有对数、指数或其他非线性输入/输出关系的 LUT——例如,使用对数 LUT 来容纳一个灰度级上的广泛计数范围。彩色 LUT 也非常流行,其中图像的数字对比度分辨率由一系列不同的颜色表示——例如彩虹方案,如图所示——或者由一种或少量颜色的色调表示。
红色、绿色和蓝色通道分别由具有相应颜色的图表示。
单击此处以查看演示各种 CLUT 对融合的 SPECT/CT 研究的影响的 QuickTime 电影(约 9 兆字节)。
数字图像处理的其他示例在下面的图中进行了说明
有关现代个人计算机的图像处理功能的详细介绍,请参阅此外部链接。
数字图像处理的另一种常见形式是对图像应用几何变换,以放大或缩小特定细节,或校正成像系统引入的几何失真。图像缩放可以在显示控制器中使用**像素复制**过程轻松实现,其中每个像素显示 N2 次,其中 N 是缩放因子,如下所示
然而,这种方法的一个缺点是,放大后的图像可能具有块状外观,反映了每个有效像素的较大尺寸。虽然应用平滑滤波器可以减少这种像素化效果,但可以使用空间插值技术生成更赏心悦目的结果。在这里,未知像素的像素值使用已知相邻像素的像素值估计。假设上面的图像再次放大,并假设这次已知像素分布在放大图像的角落,如下所示
插值过程的任务是根据角像素的已知像素值计算未知像素的像素值。最简单的方法是线性插值,其中假设已知像素的像素值之间存在线性关系。假设我们希望估计上图中红色阴影像素的像素值。在二维线性插值的情况下,也称为**双线性插值**,第一步是计算位于矩阵顶行的位置 (x,0) 的像素的像素值,如黄色阴影所示,如下所示
其中 x:沿水平轴的分数距离。
类似地,位于矩阵底行的位置 (x,1) 的黄色阴影像素的像素值使用以下公式计算
最后,可以通过对这两个计算的(黄色阴影)像素值进行线性插值来获得图中未知的红色阴影像素的像素值,如下所示
其中 y:沿垂直轴的分数距离。
此过程应用于图像中的所有未知像素。示例图像如下所示
除了线性之外,还可以应用其他函数,例如二维**多项式**和**三次样条**插值,以产生更赏心悦目的结果。但是请记住,插值数据不是真实的,这种方法只是为了改善前面提到的简单缩放技术的块状性质而生成像素值的估计值。我们将在关于X 射线 CT 的章节中进一步考虑图像插值的应用。
傅里叶变换 – 图示文集
[edit | edit source]许多教科书中对傅里叶变换(**FT**)的处理使用了许多医学科学学生感到陌生的数学水平。这里将采用一种不同的方法,基于图示文集,试图更有效地传达变换所基于的概念。它绝不替代严格的数学处理,而仅仅是为了支持您对**图像滤波**的理解。
此演示将证明图像可以从**空间**和**空间频率**两个角度考虑。空间视角是表示图像数据的传统方式,与距离和时间等现实世界参数相关。图像也可以被认为是由大量相互作用的空间频率组成。我们将使用一个相当简单的图像来开始考察这方面,然后考虑一个更复杂的图像,即胸部X光片,即由非常广泛的空间频率组成的医学图像示例。FT 将图像数据从**空间**表示转换为**空间频率**表示,而**逆 FT**执行相反的操作 – 请参见右侧的图。
下方面板(a)显示了一幅以 45 度角相对于水平方向运行的正弦亮度模式图像。面板(b)中沿线 AB 的像素值图示表明了一维中的这种正弦模式。它也可以通过绘制面板(b)中存在的正弦波的振幅与其空间频率的关系来以不同的方式表示。这在面板(c)中显示。后一个图证实了图像中只有一种空间频率占主导地位,正如预期的那样。这种类型的图被称为**一维傅里叶谱**,它使用图像数据的**一维傅里叶变换**。请注意,面板(b)和(c)仅在一个维度上说明了频率信息。
当频率信息以二维显示时,如面板(d)中所示,则称为**二维傅里叶谱**,这是使用图像数据的二维傅里叶变换实现的。它沿其垂直和水平轴显示了垂直和水平图像维度的空间频率,原点位于中心(用白色小点表示)。面板(d)中看到了另外两个点,它们旁边有轻微的水平条纹 – 一个位于原点的左上方,另一个位于原点的右下方。它们对应于面板(a)中正弦波的频率。由于 FT 会为频率生成正值和负值,因此生成的两个频率将如所示在原点两侧显示。
当胸部X光片被转换为空间频率域时,将获得更复杂的二维傅里叶谱,如下一幅图所示。变换后的数据显示了广泛的空间频率,具有显著的垂直和水平特征,正如预期的那样,因为 X 光片中显示了水平肋骨和垂直脊柱。
FT 及其逆变换的一种潜在用途是从数字图像中去除不需要的或损坏的数据,此过程在下面的最后一张图中说明。通过将刚刚分析的两个图像相加,可以生成损坏图像的极端示例,如面板 (a) 中所示。面板 (b) 中的傅里叶谱描绘了求和图像的频率特征。通过编辑频率域中的数据,可以去除正弦模式所致的不希望出现的特征,如面板 (c) 中所示,然后执行逆傅里叶变换以恢复很大程度上没有伪影的图像,如面板 (d) 中所示。
从这三个例子中可以得出的关键发现是,图像数据的**空间**和**空间频率**表示是完全等效的。频率表示在数据操作方面具有许多优势。总的来说,FT 及其逆变换为我们提供了将数据从现实世界转换为空间频率世界,反之亦然的工具。
我们在关于傅里叶方法的章节中对傅里叶变换进行了更正式的处理。