1. 直方图基础

各位同学,咱们今天正式开篇。聊医学影像增强,绕不开的第一个概念就是直方图。

说白了,直方图就是一张图像的“家底清单”。它不关心像素在哪儿,只关心每种亮度值出现了多少次。我刚开始接触医学影像时,总觉得这玩意儿太简单,不就是个统计图嘛。后来在做一个CT骨窗增强的项目时,发现图像对比度死活调不对,回头一看直方图——好家伙,像素全挤在中间一段,两端完全是空的。那一刻我才真正明白:直方图是图像处理的第一道“体检报告”。

1.1 什么是图像直方图?

图像直方图,是对图像中像素灰度级分布的统计描述。对于一张8位深度的灰度图像,其灰度级范围是0到255。直方图统计每个灰度级上像素出现的个数或概率。

你可以把它想象成一个“投票箱”:每个像素根据自己的亮度值,往对应的箱子里投一票。最终,我们看到的柱状图就是这些票数的分布情况。

核心要点:直方图只反映像素值的统计分布,不包含任何空间位置信息。两张内容完全不同的图像,可能拥有完全相同的直方图。

1.2 直方图的数学定义

咱们来点硬核的。假设一张灰度图像 f(x, y),其灰度级范围为 [0, L-1](对于8位图,L=256)。

直方图的离散函数定义为:

h(r_k) = n_k

其中:

  • r_k:第 k 个灰度级
  • n_k:图像中灰度级为 r_k 的像素个数

更常用的是归一化直方图,即概率密度函数(PDF):

p(r_k) = n_k / (M × N)

其中 M × N 是图像的总像素数。归一化后,所有 p(r_k) 之和为1。

我的习惯:在实际项目中,我几乎只用归一化直方图。因为不同尺寸的图像,原始频数没法直接对比。归一化后,你才能公平地比较两张图的分布特征。

1.3 直方图的可视化

可视化方式主要有两种:

可视化方式 描述 适用场景
柱状图 横轴为灰度级,纵轴为频数或概率 快速观察分布形态、峰值位置
累积分布曲线 横轴为灰度级,纵轴为累积概率 直方图均衡化、规定化计算

嗯,这里要注意:柱状图能直观告诉你“哪里像素多”,而累积分布曲线则告诉你“到某个灰度级为止,总共覆盖了多少像素”。后者在后续的直方图规定化中至关重要。

1.4 直方图与图像特征的关系

不同的图像特征,在直方图上会有明显的“指纹”。我整理了一个对照表,方便你快速判断:

图像特征 直方图表现 医学影像示例
偏暗图像 像素集中在低灰度区(左侧) 曝光不足的X光片
偏亮图像 像素集中在高灰度区(右侧) 过曝的DR图像
低对比度 像素集中在中间窄带区域 软组织CT窗宽过窄
高对比度 像素分布均匀,覆盖整个灰度范围 增强后的血管造影
多峰分布 出现两个或多个明显的峰值 含有骨骼和软组织的X光片

我曾经踩过的坑:有一次处理MRI图像,直方图显示有两个明显的峰。我以为是噪声,直接做了平滑滤波。结果把灰质和白质的边界信息给抹掉了。后来才意识到,那两个峰分别对应脑灰质和脑白质的灰度分布。所以,看到多峰分布时,先别急着处理,想想它是不是在告诉你图像里有几种不同的组织。

1.5 直方图知识体系总览

为了让你对整个章节的知识结构有个全局印象,我画了一张图:

直方图基础:知识体系总览 图像直方图 定义与本质 数学定义 可视化方法 统计分布,不含空间信息 反映亮度分布特征 h(r_k) = n_k(频数) p(r_k) = n_k / N(概率) 柱状图:分布形态 累积曲线:均衡化基础 直方图 → 图像特征诊断 偏暗 | 偏亮 | 低对比度 | 高对比度 | 多峰分布

1.6 一个简单的直方图计算示例

光说不练假把式。假设我们有一张3×3的微型图像:

像素值矩阵:
[50, 50, 100]
[50, 100, 200]
[100, 200, 200]

我们来手动计算它的直方图:

灰度级 (r_k) 频数 (n_k) 概率 p(r_k)
50 3 3/9 = 0.333
100 3 3/9 = 0.333
200 3 3/9 = 0.333

你看,这张图的直方图是均匀分布的——每个灰度级恰好出现3次。这种分布意味着图像具有较高的对比度。在实际医学影像中,这种均匀分布往往是增强处理追求的目标之一。

我建议:刚开始学习时,可以拿一张小尺寸图像(比如8×8)手动算一遍直方图。这个过程虽然简单,但能帮你建立对“统计分布”的直觉。等你处理百万像素的CT图像时,这种直觉会让你更快地发现问题。