数字图像表示

在计算机视觉中,图像通常表示为二维像素数组。像素是图像中的单个点,它们具有特定的亮度(灰度)或颜色。图像的坐标通常表示为 (x, y),其中 x 和 y 是像素在数组中的位置。

多维数组

除了二维数组,图像还可以表示为多维数组。例如:

  • (x, y, z):三维体素图像,通常用于医学成像。
  • (x, y, t):二维图像序列,描述随时间变化的场景,例如视频。
  • (x, y, z, t):三维图像序列,描述随时间变化的体积数据。
  • (x, y, z, b1, b2, …, bN):具有多个频段的三维图像,用于遥感和多光谱成像。

图像的一些关键属性

空间分辨率(Spatial resolution)

描述图像中每个像素所表示的空间范围。通常以像素/英寸(Pixels/inch)表示。空间分辨率越高,图像的细节越清晰。

像素大小(Pixel size)

图像中单个像素所占的实际物理空间。通常用微米(µm)表示。

强度分辨率(Intensity resolution)

描述每个像素可以表示的亮度级别。通常以比特/像素(Bits/pixel)表示。例如,8位图像具有256个灰度级。

时间分辨率(Time resolution)

描述图像序列或视频的帧率。通常以帧/秒(Frames/second)表示。时间分辨率越高,图像序列的运动越流畅。

光谱分辨率(Spectral resolution)

描述图像中光谱信息的详细程度,即颜色的种类和精度。通常表示为频带数量(Number of bands)以及每个频带的宽度(Bandwidth)。

使用图像的统计信息来表征图像。

图像均值(Mean)

所有像素值的平均值。用于描述图像的整体亮度。

标准差(Standard deviation)

表示像素值分布的离散程度。较高的标准差表示图像中像素值的变化较大,可能包含更多的细节信息。

直方图(Histogram)

是一种频率分布图,显示了图像中具有特定值或值范围的像素数量。通常用于分析图像的亮度分布和颜色分布。

阈值法(Thresholding)

阈值法通过将像素值与预先设定的阈值进行比较,将图像分割成前景和背景两部分。这是一种简单且实用的图像分割方法,但在噪声较大或目标与背景对比度较低的情况下可能会出现问题。为了解决这些问题,可以尝试其他更高级的图像分割方法,如活动轮廓(Active contours)、分水岭算法(Watershed)等。

阈值法的基本思想是将像素分为对象(Object)或背景(Background),具体做法是将像素值与预设阈值(Threshold value)进行比较。例如,对于给定的阈值 T:

  • 如果像素值 p <= T,那么像素 p 属于对象像素;
  • 否则,像素 p 属于背景像素。

然而,在实际应用中,选择合适的阈值并不容易。我们将讨论以下挑战和解决方法:

  1. 如何确定阈值?为了解决这个问题,可以采用以下方法:

    • 交互式阈值法(Interactive thresholding):让用户通过交互界面手动设置阈值。
    • 自适应阈值法(Adaptive thresholding):根据图像局部区域的亮度分布动态调整阈值。
    • 最小方差法(Variance minimization method):这种方法通过最小化类内方差(也等价于最大化类间方差)来确定最佳阈值。其中一种著名算法是 Otsu 阈值选择算法。
  2. 对于噪声较大的图像,阈值法可能无法得到理想的分割结果。为了解决这个问题,可以先对图像进行平滑处理(Smoothing),以降低噪声对分割结果的影响。

  3. 在某些情况下,单一阈值无法满足分割需求。此时可以考虑多阈值法(Multi-thresholding)或其他更高级的分割方法。

Otsu

Otsu阈值选择算法是一种基于灰度直方图的全局自动阈值分割方法。它的目标是找到一个阈值,将图像分割成前景(目标物体)和背景,使得类间方差最大化(或类内方差最小化)。它的基本思想是通过最优化一个评价标准来自动选择最佳阈值。

下面是Otsu算法的详细步骤:

  1. 计算图像的灰度直方图和每个灰度级别的概率。

  2. 初始化阈值为0,以及类间方差(或类内方差)的初始值。

  3. 遍历所有可能的阈值(从最小灰度值到最大灰度值),对每个阈值执行以下操作:

    • 更新前景和背景的灰度均值和像素数量。
    • 计算当前阈值下的类间方差(或类内方差)。
  4. 选择使类间方差最大化(或类内方差最小化)的阈值作为最佳阈值。

在实际应用中,Otsu算法可以很好地处理双峰(bimodal)直方图的情况,即前景和背景的灰度值分布较为分散且有明显的差别。然而,对于非双峰直方图或目标与背景颜色相近的图像,Otsu算法可能无法得到理想的分割结果。

类间方差和类内方差

  1. 类间方差(Inter-class variance):表示前景和背景之间的差异。在Otsu算法中,我们希望找到一个阈值,使得前景和背景的灰度均值差距越大越好。这意味着前景和背景之间的差异更明显,更容易区分。因此,我们要最大化类间方差。

  2. 类内方差(Intra-class variance):表示前景和背景内部的差异。在图像分割过程中,我们希望同一类别(前景或背景)内部的像素差异尽可能小,这样可以使得分割结果更稳定。因此,我们要最小化类内方差。

在Otsu算法中,我们通过最大化类间方差(或最小化类内方差)来寻找最佳阈值。这样可以确保前景和背景之间的差异最大,同时各自类别内部的差异最小,从而实现较好的图像分割效果。

使类间方差最大化(或类内方差最小化)的阈值作为最佳阈值的原因是:在这个阈值下,前景和背景之间的差异最大,而各自类别内部的差异最小。这有助于更清晰地区分前景和背景,从而实现更准确的图像分割。

阈值法的问题

选择合适的阈值

在许多情况下,很难找到一个能很好地将目标和背景分开的阈值。图像中不同区域可能需要不同的阈值,这使得手动选择阈值变得困难且耗时。

噪声

噪声会导致像素值的错误判断,从而影响阈值法的分割效果。对于噪声较大的图像,可以尝试先进行平滑处理来降低噪声的影响。

目标与背景的对比度

当目标和背景之间的对比度较低时,阈值法可能无法区分它们。

非均匀照明

如果图像受到非均匀照明的影响,可能导致不同区域的阈值不同。解决这个问题的方法之一是使用自适应阈值法(Adaptive thresholding),根据图像的局部区域亮度动态调整阈值。

数学形态学(Mathematical morphology)

主要关注形状和结构的研究。它的操作定义为两组点之间的相互作用。其中一个集合(通常较大)表示图像,另一个集合(通常较小)称为结构元素(structuring element)。

结构元素可以被认为是一种“笔刷”,用于以特定方式在图像上进行“绘制”。常见的结构元素如下(灰色点表示结构元素集合的“活动”成员):

  1. 二维矩形结构元素
  2. 二维圆形结构元素
  3. 一维线性结构元素

数学形态学的两个主要操作是膨胀(Dilation)和腐蚀(Erosion):

  1. 膨胀(Dilation,又称扩张):为对象的边缘添加一层像素。对象会变大,相邻对象会合并,孔洞会被填补。
  2. 腐蚀(Erosion,又称腐蚀):从对象的边缘删除一层像素。对象会变得更细,如果已经很细,可能会被分割成几个部分。

结合这些基本操作,可以实现更复杂的图像处理任务,例如:

开运算(Opening)

先腐蚀后膨胀。这种操作可以消除小的亮度突出,同时保持对象的形状基本不变。

开运算(Opening)的应用场景:

假设我们有一张含有许多细胞的生物显微镜图像,我们希望计算细胞数量。但是,图像中可能有一些小的亮度斑点,这些斑点可能会干扰细胞计数。在这种情况下,我们可以应用开运算来消除这些小的亮度突出。开运算通过先进行腐蚀(消除小的亮度突出),然后进行膨胀(恢复细胞边缘形状)来实现。这样,我们就可以得到一个去除小噪声的图像,便于进行细胞计数。

闭运算(Closing)

先膨胀后腐蚀。这种操作可以填补对象内部的小孔洞,同时保持对象的形状基本不变。

闭运算(Closing)的应用场景:

假设我们有一张含有许多道路的卫星图像,我们希望提取道路网络。然而,图像中的道路可能有一些小的断裂或裂缝,这些裂缝可能会影响道路提取的准确性。在这种情况下,我们可以应用闭运算来填补这些小裂缝。闭运算通过先进行膨胀(填补裂缝),然后进行腐蚀(恢复道路宽度)来实现。这样,我们就可以得到一个连通的道路网络,便于进行道路提取和分析。

数学形态学应用

数学形态学在图像处理中有广泛应用,例如去噪、边缘检测、骨架提取等。

高级图像分割方法

活动轮廓(Active contours,又称为 Snakes)

主要思想是用一条可变形的曲线C来近似目标边界。为了达到最佳拟合,能量函数E被定义为三个组成部分的加权和:

$$ E[(C)(p)]=\alpha \int_{0}^{1} E_{i n t}(C(p)) d p+\beta \int_{0}^{1} E_{i m g}(C(p)) d p+\gamma \int_{0}^{1} E_{c o n}(C(p)) d p $$

  1. 内部能量(Internal energy):$E_{i n t}(C(p))$衡量曲线的光滑程度,包含两个部分:对拉伸的抵抗和对弯曲的抵抗。通过调整α参数,可以控制蛇(snake)对拉伸和弯曲的敏感程度。

  2. 图像能量(Image energy):$E_{i m g}(C(p))$引导活动轮廓(active contour)靠近所需的图像特性(如强梯度)。图像能量是图像特征(如边缘)的某个函数。通过调整β参数,可以控制蛇对图像特性的敏感程度。

  3. 外部能量(External energy):$E_{c o n}(C(p))$用于描述用户定义的约束条件或恢复结构的先验知识。通过调整γ参数,可以控制用户对蛇的初始位置和能量项的干预程度。

这三个能量项之间的平衡点是能量函数E的最低势,可以通过优化算法(如梯度下降)找到。

下面是一个活动轮廓算法的示意图:

这个图展示了活动轮廓在迭代过程中如何靠近物体边缘。在每次迭代时,蛇(snake)会试图最小化总能量,使得形状更接近目标物体的边缘。在最优解达到时,蛇将紧密拟合目标物体的轮廓。

分水岭算法(Watershed)

这种方法将图像看作是地形表面,其中像素值表示高度。分水岭算法的目标是确定局部极小值(Local minima)及其各自的汇水盆地(Catchment basins)和分水岭线(Watershed lines)。汇水盆地通常对应于图像中的目标对象,而分水岭线则表示对象之间的边界。分水岭算法适用于具有明显边缘的图像,但在噪声较大的情况下可能会产生过分割(Over-segmentation)的问题。

图像配准概述

定义和目的:

图像配准(Image Registration)是将两张或多张图像(可能是不同类型的图像,如MR、CT、可见光、荧光等)进行几何(和光度)对齐的过程。其目的是通过估计两张图像之间的最优变换来实现图像对齐。图像配准在医学图像处理和计算机视觉领域具有广泛的应用,如研究疾病进展、诊断疾病、数据融合等。

应用示例

一种应用示例是老年大脑研究。研究人员通过使用多个健康老年人的MRI扫描图像构建了一个详细的人脑图谱。这个图谱能够精确地定位患者大脑结构上与疾病相关的变化,如阿尔茨海默病。

注册组件

Similarity function | J-image after transformation T

$$ T=\underset{p}{\operatorname{argmin}} \sum \operatorname{sim}\left(I\left(x_{k}\right), J\left(T_{p}\left(x_{k}\right)\right)\right) $$

Reference image I | Target (floating) image J

找到使参考图像$I$和目标图像$J$之间的差异最小的变换$T$(由参数向量$p$定义)

  • 匹配实体(What entities do we match?):我们需要确定要匹配的对象,如特征(边缘、角点等)、图像强度等。
  • 变换类别(What class of transforms?):我们需要确定使用哪种变换,如刚性变换、仿射变换、样条变形等。
  • 相似性标准(What similarity criterion to use?):我们需要确定使用哪种相似性度量方法,如归一化互相关、互信息等。
  • 搜索算法(What search algo to find the minimum T?):我们需要确定如何寻找最小相似性度量值对应的变换参数,这通常涉及到优化算法的选择。
  • 插值方法(What interpolation method to use?):我们需要确定在图像变换过程中采用哪种插值方法,如双线性插值、样条插值等。

匹配实体

特征

特征是图像中具有显著性质的区域,它们容易在图像中识别和定位。特征可以包括:

  • 边缘(Edges):图像中灰度或颜色变化剧烈的区域。
  • 角点(Corners):图像中两个或多个边缘相交的点。
  • 其他显著特征:如曲率高的区域、线条交点等。

图像强度(Image intensities)

指的是图像每个像素的灰度值或颜色值。在一些匹配场景中,基于图像强度的配准方法可能更为直接有效。

特征图像(Feature images)

这是对原始图像进行某种变换后得到的图像,例如边缘图像。它们可以突显图像中的某些特性,有助于提高配准精度。

组合实体

在某些情况下,可以结合上述几种实体,以实现更精确的图像配准。

图像直方图(Image histogram)或联合直方图(Joint histogram)

匹配直方图重叠度。

变换类别

刚性变换(Rigid Transformation)

用于同一主体(Subject)内的配准,当不存在形变时。刚性变换包括3个旋转(rotation)和3个平移(translation)。刚性变换是线性的,可以用一个4x4矩阵表示。例如,将一个图像向右平移10个像素并顺时针旋转45度,这是一个典型的刚性变换操作。

仿射变换(Affine Transformation)

用于同一主体内的配准,当存在整体畸变(distortion)时。仿射变换包括3个旋转、3个平移、3个拉伸(scaling)和3个剪切(shearing)。仿射变换也是线性的,可以用一个4x4矩阵表示。例如,在图像处理中,我们可能需要对图像进行缩放和旋转来匹配不同大小和角度的对象,这就可以使用仿射变换实现。

分段仿射变换(Piecewise Affine Transformation)

这是一种简单的非刚性(non-rigid)变换。通常根据图像的不同部分使用不同的仿射变换。例如,在图像拼接中,我们可能需要对各部分的图像进行局部变换,使它们在拼接时能更好地匹配。

非刚性(弹性)变换(Non-rigid or Elastic Transformation)

将原始图像视为受到两种力影响的弹性体。外部力驱动形变,内部力提供约束。

非刚性变换在跨主体配准(inter-subject registration)和形变校正(distortion correction)中需要使用,它是非线性的,没有矩阵表示。

非刚性变换有许多参数化方法,如:

  • 样条参数化(Spline Parameterizations,包括B-splines、Thinplate Splines)
  • 截断基函数展开方法(Truncated Basis Function Expansion Methods,如Fourier Parameterizations)

相似性度量(目标函数)

基于特征的方法(比如,角点、边缘等)

度量方法包括计算对应点之间的几何距离(例如,CPD方法)和计算特征值之间的相似性度量(例如,曲率相似性)。

基于强度的方法(使用图像值)

这些方法主要包括:

均方差(Mean Squared Difference,MSD)
平方差和(Sum of Squared Differences,SSD)

仅适用于强度已正确归一化的相同模态内和同一主体内的配准。

互信息(Mutual Information,MI)

这是一种在医学图像配准中广泛使用的度量方法。它通过最大化联合直方图的聚类程度来实现。公式为:

$$ MI(I, J \mid T)=\sum_{i, j} p_{i, j} \log \frac{p_{i, j}}{p_{i} p_{j}} $$

归一化互相关(Normalized Cross-Correlation,NCC)

归一化互相关(Normalized Cross-Correlation,简称NCC)是一种用于衡量两个信号(在图像配准中即两幅图像)相似性的度量方法。它允许图像之间强度存在线性关系,这意味着即使两幅图像的像素值可能存在一定的线性变换(例如缩放、偏移等),NCC仍然能够很好地衡量它们之间的相似性。

NCC的计算方法如下:

  1. 在参考图像I和目标图像J中选择相应的窗口(通常为矩形区域)。
  2. 计算每个窗口中像素值的平均值和标准差。
  3. 计算参考图像I和目标图像J中相应窗口的互相关(cross-correlation)。
  4. 使用参考图像I和目标图像J中窗口的标准差对互相关进行归一化。

归一化互相关的公式表示为:

$$ NCC = \frac{\sum_{i,j} (I(i, j) - \bar{I})(J(i, j) - \bar{J})}{\sqrt{\sum_{i,j} (I(i, j) - \bar{I})^2 \sum_{i,j} (J(i, j) - \bar{J})^2}} $$

其中,$I(i, j)$ 和 $J(i, j)$ 分别表示参考图像I和目标图像J中像素$(i, j)$的强度值,$\bar{I}$ 和 $\bar{J}$ 分别表示参考图像I和目标图像J中窗口像素值的平均值。

NCC的值范围在-1到1之间,当NCC值接近1时,表示两个信号具有很高的相似性;当NCC值接近-1时,表示两个信号具有很高的负相关性;当NCC值接近0时,表示两个信号之间没有显著的相关性。

归一化互相关(Normalized Cross-Correlation, NCC)之所以能够处理线性变换后图像的相似性,是因为它通过减去窗口内像素强度的平均值并除以标准差,消除了图像强度值的线性变换对比较的影响。接下来我详细解释一下。

线性变换是指对图像的像素值进行缩放(乘以一个常数因子)和偏移(加上或减去一个常数)这样的操作。假设我们有两幅图像I和J,它们是通过一个线性变换关联的,即:

$$ J(i, j) = aI(i, j) + b $$

其中,$a$ 和 $b$ 是常数,表示缩放因子和偏移量。

当我们计算归一化互相关时,我们首先从I和J的窗口内像素强度值中减去平均值。这一步消除了偏移量$b$对比较的影响。接着我们将互相关结果除以I和J窗口内像素强度值的标准差。由于标准差与缩放因子$a$成正比,因此这一步消除了缩放因子$a$对比较的影响。

因此,在计算归一化互相关时,我们实际上是消除了线性变换的影响,只关注窗口内图像的相对强度分布。这使得NCC在处理线性变换后的图像相似性时具有很好的稳定性和鲁棒性。

相似性标准

  1. 如果要处理同一模态(例如,都是MRI图像)且同一主体的图像,可以考虑使用均方差(Mean Squared Difference,MSD)或者平方差和(Sum of Squared Differences,SSD)作为相似性标准。

  2. 如果要处理不同模态(例如,MRI和CT图像)或者跨主体的图像,互信息(Mutual Information,MI)可能是一个更好的选择。因为它能够处理图像之间强度的非线性关系。

  3. 如果要处理的图像之间存在线性关系,可以使用归一化互相关(Normalized Cross-Correlation,NCC)作为相似性标准。