跳转至

第2章 图像变换

一、数学运算(Mathematical Operations)

1.1 逐像素运算(Elementwise / Pixel-wise Operator)

图像的基本数学运算是对两幅图像逐像素进行的——不仅涉及矩阵运算,还包含空间信息。

加法

\[\begin{bmatrix} f_{11} & f_{12} \\ f_{21} & f_{22} \end{bmatrix} + \begin{bmatrix} g_{11} & g_{12} \\ g_{21} & g_{22} \end{bmatrix} = \begin{bmatrix} f_{11}+g_{11} & f_{12}+g_{12} \\ f_{21}+g_{21} & f_{22}+g_{22} \end{bmatrix}\]
  • 注意区分矩阵乘法(Matrix Production)逐像素乘法(Pixel-wise Production),两者完全不同

1.2 线性算子(Linear Operator)

\(H\) 是线性算子,则满足可加性(Additivity)齐次性(Homogeneity)

\[H[f_1(x,y) + f_2(x,y)] = H[f_1(x,y)] + H[f_2(x,y)]\]
\[H[a \cdot f(x,y)] = a \cdot H[f(x,y)]\]

1.3 算术运算(Arithmetic Operations)

所有算术运算均为逐像素(Pixel-wise)进行。

(1)加法(Addition)

\[g(x,y) = f_1(x,y) + f_2(x,y)\]
  • 用途去除/降低噪声(Reduce Noise)——多幅图像叠加平均后,随机噪声被平滑,信噪比提高
  • 叠加图像数量越多,去噪效果越好(10 → 50 → 100 → 500 → 1000 幅)

(2)减法(Subtraction)

\[d(x,y) = f_1(x,y) - f_2(x,y)\]
  • 用途检测差异(Find Differences)
  • 典型应用:数字减影血管造影(DSA, Digital Subtraction Angiography)
    • 注射造影剂前拍一张(mask),注射后拍一张
    • 两者相减 → 仅剩血管影像(背景被减掉)
    • 差值图像再增强 → 清晰血管结构

(3)乘法和除法(Multiplication & Division)

\[g(x,y) = f_1(x,y) \cdot f_2(x,y) \quad \text{(掩膜区域提取/Mask Region)}\]
\[g(x,y) = f_1(x,y) \div f_2(x,y) \quad \text{(归一化/Normalize)}\]

1.4 集合与逻辑运算(Set and Logical Operations)

用于二值图像(Binary Image)的操作:

B1 B2 not B1 B1 and B2 B1 or B2 B1 xor B2
1 1 0 1 1 0
1 0 0 0 1 1
0 1 1 0 1 1
0 0 1 0 0 0

二、空间变换(Spatial Transformation)

2.1 为什么需要空间变换?

  • 图像配准(Registration):将不同个体/不同模态的图像对齐到同一空间
    • 个体大脑 → MNI 标准空间(跨个体比较)
    • CT 与 MRI 配准融合(放疗计划)
    • 同一患者不同时间点对比

2.2 仿射变换(Affine Transformation)

仿射变换的齐次坐标矩阵形式(3×3):

\[\begin{bmatrix} x' \\ y' \\ 1 \end{bmatrix} = \begin{bmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x \\ y \\ 1 \end{bmatrix}\]

矩阵参数与四种基本操作的对应关系:

仿射矩阵 \(M = \begin{bmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ 0 & 0 & 1 \end{bmatrix}\) 中,各参数分别控制以下变换:

变换类型 对应参数 说明
平移(Translation) \(a_{13},\; a_{23}\) 右列:\(t_x = a_{13},\; t_y = a_{23}\)
旋转(Rotation) \(a_{11}, a_{12}, a_{21}, a_{22}\) \(2\times2\) 子矩阵整体:\(\begin{bmatrix}\cos\theta & -\sin\theta \\ \sin\theta & \cos\theta\end{bmatrix}\)
缩放(Scaling) \(a_{11},\; a_{22}\) 对角线元素:\(s_x = a_{11},\; s_y = a_{22}\)
错切(Shearing) \(a_{12},\; a_{21}\) 非对角线元素:水平错切 \(a_{12}\),垂直错切 \(a_{21}\)

:实际矩阵中 \(2\times2\) 子矩阵是四种变换复合的结果,并非单一变换。上述对应关系是针对纯该变换时的参数位置。

变换 自由度(2D) 说明
平移(Translation) 2 \(x'=x+t_x,\; y'=y+t_y\)
旋转(Rotation) 1 绕原点逆时针旋转 \(\theta\)
刚体(Rigid) 3 平移 + 旋转,保距保角
缩放(Scaling) 2 \(x'=s_x x,\; y'=s_y y\)
错切(Shearing) 2 平行四边形变形
仿射(Affine) 6 以上全部,保平行性

2.3 2-D 刚体变换(Rigid-body Transform)

\[M = \begin{bmatrix} \cos\theta & -\sin\theta & t_x \\ \sin\theta & \cos\theta & t_y \\ 0 & 0 & 1 \end{bmatrix}\]
  • 只有 3 个自由度(\(\theta, t_x, t_y\)​)
  • \(\theta\)为逆时针旋转的角度
  • 旋转角度 \(\theta\) 的确定:需要 \(\sin\theta\)\(\cos\theta\) 两个参数才能唯一确定角度,否则存在两个解

历年卷考点:旋转矩阵参数

对于旋转矩阵 \(\begin{bmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{bmatrix} = \begin{bmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{bmatrix}\)

  • 仅知道 \(a_{11}\)(即 \(\cos\theta\))→ 无法确定 \(\theta\) 的正负(\(\cos\theta = \cos(-\theta)\)
  • 需要同时知道 \((a_{11}, a_{21})\)\((\cos\theta, \sin\theta)\) → 可唯一确定 \(\theta\)
  • 答案选 \(a_{11}, a_{21}\)

2.4 3-D 刚体变换

3-D 刚体变换有 6 个自由度

  • 3 个平移:沿 X、Y、Z 轴

  • 3 个旋转:绕 X 轴(Pitch \(\phi\))、绕 Y 轴(Roll \(\psi\))、绕 Z 轴(Yaw \(\theta\)

旋转矩阵由三个基本旋转矩阵合成,运算顺序影响结果

\[ R = R_z(\theta) \cdot R_x(\phi) \cdot R_y(\psi) \]

绕 X 轴逆时针旋转 \(\phi\)

\[R_x(\phi) = \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos\phi & -\sin\phi \\ 0 & \sin\phi & \cos\phi \end{bmatrix}\]

绕 Y 轴逆时针旋转 \(\psi\)

\[R_y(\psi) = \begin{bmatrix} \cos\psi & 0 & -\sin\psi \\ 0 & 1 & 0 \\ \sin\psi & 0 & \cos\psi \end{bmatrix}\]

绕 Z 轴逆时针旋转 \(\theta\)

\[R_z(\theta) = \begin{bmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{bmatrix}\]

2.5 3-D 仿射变换

\[ x' = A x, \quad A \in \mathbb{R}^{3 \times 3} \]

总映射包含平移、旋转、缩放,共 9 个参数(3个旋转 + 3个平移 + 3个缩放)。

运算顺序影响结果(先旋转后平移 ≠ 先平移后旋转)。

2.6 空间变换中的插值

空间变换后坐标可能为非整数 → 需要插值重采样。

  • 最近邻(Nearest-neighbor)

  • 双线性(Bilinear)

  • 双三次(Bicubic)

  • 裁剪或放大(Crop or Enlarge)

2.7 非线性变换(Non-linear Transform)

  • 仿射变换:6 个自由度(2D)
  • 非线性变换:不断增加自由度,可以描述更复杂的局部形变
  • 通过位移场(Deformation Field)来表示每个像素的位移量

三、灰度变换 / 点处理(Intensity Transformations — Point Processing)

3.1 点处理的基本概念

点处理仅依赖于该点的灰度级,邻域大小为 \(1 \times 1\)

\[ s = T(r) \]

\(T\) 成为灰度级映射函数(intensity mapping function)。

3.2 基本灰度变换

img

(1)线性变换

  • 恒等变换(Identity)\(s = r\)
  • 负片变换(Negative)\(s = L - 1 - r\)

负片变换的作用:将暗区域变亮,亮区域变暗,适用于观察暗区细节。

(2)对数变换(Logarithmic Transformation)

\[ s = c \cdot \log(1 + r) \]
  • 非线性变换
  • 作用:压缩高灰度(亮、白)区域、扩展低灰度(暗、黑)区域(增强暗区细节)
  • 适用于:傅里叶频谱显示(动态范围很大,需压缩)

(3)幂律变换 / 伽马变换(Power-law / Gamma Transformation)

\[ s = c \cdot r^\gamma \]
\(\gamma\) 效果 适用场景
\(\gamma < 1\) 扩展暗区,压缩亮区 图像偏暗时提亮(如欠曝照片)
\(\gamma = 1\) 恒等变换
\(\gamma > 1\) 压缩暗区,扩展亮区 图像偏亮时压暗(如过曝照片)

历年卷考点:伽马变换的性质

  • \(\gamma < 1\) → 提升暗区亮度,整体变亮
  • \(\gamma > 1\) → 降低亮区亮度,整体变暗
  • 伽马变换是非线性变换
  • 伽马校正常用于显示设备的亮度响应补偿

(4)分段线性变换(Piecewise-Linear Transformation)

  • 可以任意复杂的形状
  • 需要更多用户输入
  • 典型应用:对比度拉伸(Contrast Stretching)
    • 将感兴趣灰度范围拉伸到全范围 \([0, L-1]\)
    • 增强特定灰度区间的对比度

(5)灰度级分层(Intensity-level Slicing)

  • 高亮特定灰度范围,去除背景
  • 保留感兴趣灰度区间(如某组织对应的灰度),其余置零
  • 类似于阈值二值化但有更多层次

四、直方图(Histogram)

4.1 直方图的定义

直方图统计每个灰度级的像素个数

\[ h(r_k) = n_k, \quad k = 0, 1, \ldots, L-1 \]

归一化直方图(概率密度函数 PDF 的估计):

\[ p(r_k) = \frac{n_k}{N}, \quad N = \sum_{k=0}^{L-1} n_k \]

直方图的特性

  • 直方图不包含空间位置信息(丢失了像素在哪里)
  • 不同的图像可以有相同的直方图

4.2 直方图的统计量

统计量 公式 反映的图像属性
一阶矩(均值 Mean) \(\mu = \sum r \cdot p(r)\) 亮度(Brightness)
二阶矩(方差 Variance) \(\sigma^2 = \sum (r - \mu)^2 \cdot p(r)\) 对比度(Contrast)
高阶矩(N-th order) \(\mu_n = \sum (r - \mu)^n \cdot p(r)\) 更复杂的分布特征

历年卷考点

  • 直方图均值 \(\mu\) 越大 → 图像整体越
  • 直方图方差 \(\sigma^2\) 越大 → 图像对比度越高(灰度分布越分散),直方图方差小 → 灰度集中在均值附近,对比度低

4.3 直方图变换的基本条件

正向变换 \(s = T(r)\)\(0 \leq r \leq L-1\)

  1. \(T(r)\)单调不减函数(保证灰度顺序不颠倒)
  2. \(0 \leq T(r) \leq L-1\)(保证输出在有效范围内)

反向变换:\(r = T^{-1}(s)\)


五、直方图均衡化(Histogram Equalization)

5.1 直方图均衡化的目的与基本思想

目的:直方图均衡化的核心目的是增强图像整体对比度。当一幅图像的灰度值集中分布在较窄的灰度区间内时(直方图窄而尖),图像表现为低对比度、细节不清晰。均衡化通过重新分配灰度值,将原本集中的灰度分布拉伸到整个 \([0, L-1]\) 范围,从而:

  • 增大动态范围:充分利用全部可用灰度级,避免灰度级浪费
  • 增强对比度:使原本灰度相近的像素被拉开,细节更易分辨
  • 便于后续处理:均衡化后的图像具有更稳定的统计特性,有利于后续的分割、特征提取等任务

目标:设计 \(s = T(r)\),使输出图像的直方图 \(p_s(s)\)均匀分布\(p_s(s) = \frac{1}{L-1}\))。

5.2 连续情况

\[ s = T(r) = (L-1) \int_0^r p_r(w) \, dw \]

即用原始图像的累积分布函数(CDF)作为变换函数。

5.3 离散情况

\[ s_k = T(r_k) = (L-1) \sum_{j=0}^{k} p_r(r_j) = \frac{L-1}{N} \sum_{j=0}^{k} n_j \]

步骤

1.统计各灰度级的像素数 \(n_k\)​​

2.计算概率 \(p(r_k) = n_k / N\)

3.计算累积概率 CDF

4.乘以 \((L-1)\)四舍五入取整得到映射值 \(s_k\)

关于零值背景处理

当图像背景区域含有大量零值像素时,直方图均衡化通常从灰度级 1 开始计算,忽略零值像素。否则均衡化效果会被背景主导。

5.4 均衡化的效果

  • 均衡化并非完美均匀(离散情况下只能是近似均匀)
  • 均衡化后:灰度级分布更均匀,但原始灰度级数量不增加
  • 均衡化增大对比度(灰度级范围被拉伸)
  • 均衡化后亮度会发生变化(均值可能移动)

六、直方图匹配(Histogram Matching)

6.1 为什么需要直方图匹配?

直方图均衡化 → 均匀直方图(总是固定的目标)

直方图匹配 → 任意指定形状的直方图作为目标

6.2 基本原理

定义三个变换:

  1. \(s = T(r) = (L-1) \int_0^r p_r(w) \, dw\) — 将输入均衡化到均匀

  2. \(G(z) = (L-1) \int_0^z p_z(w) \, dw\) — 将目标均衡化到均匀

  3. \(z = G^{-1}(s) = G^{-1}[T(r)]\) — 将两者联系起来

因此 \(z = G^{-1}[T(r)]\) 即为从原始灰度 \(r\) 到目标灰度 \(z\) 的映射函数。

6.3 离散情况算法

  1. 计算输入图像的均衡化映射 \(s_k = T(r_k) = (L-1) \sum_{j=0}^{k} p_r(r_j)\),四舍五入
  2. 计算目标直方图的均衡化映射 \(v_q = G(z_q) = (L-1) \sum_{j=0}^{q} p_z(z_j)\)
  3. 构建查找表(Lookup Table):对于每个 \(s_k\),找到最接近的 \(v_q\),将 \(r_k\) 映射到 \(z_q\)
  4. 若有平局(tie),选较小的 \(z_q\)(具体看题目要求)

七、本章总结(Summary)

数学运算

  • 逐像素算术运算:加(降噪)→ 减(DSA检测差异)→ 乘(掩膜)→ 除(归一化)
  • 集合与逻辑运算:用于二值图像(AND/OR/XOR/NOT)
  • 线性算子:满足可加性 + 齐次性

空间变换

  • 刚体变换:3 自由度(2D)/ 6 自由度(3D),保距保角
  • 仿射变换:6 自由度(2D)/ 12 自由度(3D),保平行性
  • 非线性变换:位移场,无限自由度
  • 旋转矩阵:\(\begin{bmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{bmatrix}\),需 \(\sin\theta\)\(\cos\theta\) 两个参数定角

强度变换(点处理)

  • \(s = T(r)\),仅取决于单点灰度值
  • 线性:负片 \(s = L-1-r\)
  • 非线性:对数 \(s = c\log(1+r)\)、伽马 \(s = cr^\gamma\)
  • 分段线性:对比度拉伸、灰度分层

直方图

  • 统计各灰度级像素数,不含空间信息
  • 均值 → 亮度,方差 → 对比度
  • 直方图均衡化 → 均匀分布(CDF 做变换函数)
  • 直方图匹配 → 匹配到指定直方图形状

作业解答(BIP Homework 1)

题目 1:2D 空间仿射变换

题目:三角形 A 的顶点为 \(A_1(0,0)\)\(A_2(2,0)\)\(A_3(0,1)\)。三角形 B 的顶点为 \(B_1(2,1)\)\(B_2(2,5)\)\(B_3(3,1)\)

(1) 按 S → R → T 的顺序,设计 \(3 \times 3\) 齐次坐标仿射变换矩阵(缩放 S、旋转 R、平移 T)。

(2) 计算总体变换矩阵 \(M = T \cdot R \cdot S\)

解答

(1) 确定各变换矩阵

先分析三角形 A → B 的变化:

  • \(A_1A_2 = (2,0)\)\(B_1B_2 = (0,4)\):边长从 2 变为 4 → 需要缩放,且在 \(y\) 方向上放大更显著
  • \(A_1A_3 = (0,1)\)\(B_1B_3 = (1,0)\):A 中沿 \(y\) 轴的单位向量对应 B 中沿 \(x\) 轴的单位向量 → 逆时针旋转 \(90°\)

缩放矩阵\(x\) 方向缩放因子=2, \(y\) 方向缩放因子=1):

\[S = \begin{bmatrix} 2 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix}\]

实际上从边长看:\(|A_1A_2|=2 \to |B_1B_2|=4\)\(|A_1A_3|=1 \to |B_1B_3|=1\)。但由于旋转的存在,需要整体考虑。题目中原文给出的 S 是:

\[S = \begin{bmatrix} 2 & 0 & 0 \\ 0 & -1 & 0 \\ 0 & 0 & 1 \end{bmatrix}\]

旋转矩阵(逆时针 \(90°\)\(\cos 90° = 0\), \(\sin 90° = 1\)):

\[R = \begin{bmatrix} \cos 90° & -\sin 90° & 0 \\ \sin 90° & \cos 90° & 0 \\ 0 & 0 & 1 \end{bmatrix} = \begin{bmatrix} 0 & -1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 1 \end{bmatrix}\]

平移矩阵\(A_1(0,0) \to B_1(2,1)\)):

\[T = \begin{bmatrix} 1 & 0 & 2 \\ 0 & 1 & 1 \\ 0 & 0 & 1 \end{bmatrix}\]

(2) 总体变换矩阵

\[M = T \cdot R \cdot S = \begin{bmatrix} 1 & 0 & 2 \\ 0 & 1 & 1 \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} 0 & -1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} 2 & 0 & 0 \\ 0 & -1 & 0 \\ 0 & 0 & 1 \end{bmatrix} = \begin{bmatrix} 0 & 1 & 2 \\ 2 & 0 & 1 \\ 0 & 0 & 1 \end{bmatrix}\]

验证:将 A 的三个顶点代入,检查是否得到 B:

\[M \begin{bmatrix} 0 \\ 0 \\ 1 \end{bmatrix} = \begin{bmatrix} 2 \\ 1 \\ 1 \end{bmatrix} = B_1(2,1) \quad \checkmark\]
\[M \begin{bmatrix} 2 \\ 0 \\ 1 \end{bmatrix} = \begin{bmatrix} 2 \\ 5 \\ 1 \end{bmatrix} = B_2(2,5) \quad \checkmark\]
\[M \begin{bmatrix} 0 \\ 1 \\ 1 \end{bmatrix} = \begin{bmatrix} 3 \\ 1 \\ 1 \end{bmatrix} = B_3(3,1) \quad \checkmark\]

题目 2:连续直方图匹配

题目:给定两个随机变量 \(R\)\(Z\) 的 PDF:

\[p_r(r) = 2 - 2r, \quad p_z(z) = 3z^2\]

求将原始灰度 \(r\) 映射到目标灰度 \(z\) 的变换函数 \(z = T(r)\)

解答

第一步:分别求 CDF(累积分布函数)

\[T_r(r) = \int_0^r p_r(w) \, dw = \int_0^r (2-2w) \, dw = 2r - r^2, \quad 0 \leq r \leq 1\]
\[G(z) = \int_0^z p_z(w) \, dw = \int_0^z 3w^2 \, dw = z^3, \quad 0 \leq z \leq 1\]

第二步:由直方图匹配原理 \(T_r(r) = G(z)\)

\[2r - r^2 = z^3\]

第三步:解出 \(z = T(r)\)

\[z = T(r) = \sqrt[3]{2r - r^2},0 \le r \le 1\]

题目 3:离散直方图均衡化与匹配

题目:一幅 100 像素的灰度图像(\(L=8\),灰度级 0~7)。

  • 原始灰度分布 \(n(r_k)\)\([40, 20, 15, 10, 5, 5, 3, 2]\)
  • 目标概率分布 \(p_z(z_k)\)\([0, 0.07, 0.10, 0.26, 0.28, 0.15, 0.11, 0.03]\)

(1) 对原始图像做直方图均衡化,求离散映射值 \(s_k\)

(2) 计算目标直方图的变换函数 \(G(z_k)\)

(3) 做直方图匹配,将原始灰度 \(r_k\) 映射到目标灰度 \(z_k\)(平局时选较小的 \(z\)

解答

(1) 直方图均衡化

公式:\(s_k = (L-1) \sum_{j=0}^{k} p_r(r_j) = 7 \sum_{j=0}^{k} \frac{n_j}{N}\)

总像素数 \(N = 100\)

\(r_k\) \(n_k\) \(p_r(r_k)\) \(\sum p_r\) \(7 \times \sum p_r\) \(s_k\)(四舍五入)
0 40 0.40 0.40 2.80 3
1 20 0.20 0.60 4.20 4
2 15 0.15 0.75 5.25 5
3 10 0.10 0.85 5.95 6
4 5 0.05 0.90 6.30 6
5 5 0.05 0.95 6.65 7
6 3 0.03 0.98 6.86 7
7 2 0.02 1.00 7.00 7

均衡化映射:\(0 \to 3,\; 1 \to 4,\; 2 \to 5,\; 3 \to 6,\; 4 \to 6,\; 5 \to 7,\; 6 \to 7,\; 7 \to 7\)

(2) 目标直方图的 \(G(z_k)\)

公式:\(G(z_k) = (L-1) \sum_{j=0}^{k} p_z(z_j) = 7 \sum_{j=0}^{k} p_z(z_j)\)

\(z_k\) \(p_z(z_k)\) \(\sum p_z\) \(G(z_k)=7 \times \sum p_z\) 四舍五入
0 0.00 0.00 0.00 0
1 0.07 0.07 0.49 0
2 0.10 0.17 1.19 1
3 0.26 0.43 3.01 3
4 0.28 0.71 4.97 5
5 0.15 0.86 6.02 6
6 0.11 0.97 6.79 7
7 0.03 1.00 7.00 7

(3) 直方图匹配 — 构建查找表

对于每个 \(r_k\) 的均衡化值 \(s_k\),在 \(G(z_k)\) 中找最接近的值,映射到对应 \(z_k\)(平局选较小的 \(z\)):

\(r_k\) \(s_k\) 匹配的 \(G(z)\) 对应的 \(z_k\)(匹配结果)
0 3 \(G(3)=3\) 3
1 4 \(G(3)=3\)\(G(4)=5\),选小 → 3 3
2 5 \(G(4)=5\) 4
3 6 \(G(5)=6\) 5
4 6 \(G(5)=6\) 5
5 7 \(G(6)=7\), \(G(7)=7\),选小 → 6 6
6 7 同上 → 6 6
7 7 同上 → 6 6

最终匹配映射:

\(r_k\) 0 1 2 3 4 5 6 7
\(z_k\) 3 3 4 5 5 6 6 6

实验(LAB2)

实验 1:空间变换 — 图像旋转与插值对比

实验内容:使用 lab2_MRI.npy 脑部 MRI 数据,通过矩阵运算手动实现图像的仿射旋转。将图像正向旋转 \(\pi/5\) 后再反向旋转 \(-\pi/5\),分别使用最近邻插值双线性插值执行上述旋转操作,对比两种插值方法的信息损失差异。Bonus 部分额外比较 1 次旋转循环与 5 次连续旋转循环的误差累积情况。

实验步骤

  1. 生成目标图像坐标网格,构建逆旋转矩阵 \(R(-\theta)\),通过矩阵乘法一次性完成所有像素的反向映射

  2. 对反向映射得到的小数坐标,分别使用最近邻(直接四舍五入)和双线性(\(2 \times 2\) 邻域加权平均)两种方法进行插值

  3. 计算正向-反向旋转后与原图的 MSE,用滑动窗口自动寻找差异最大区域并用箭头标注

  4. Bonus:比较 1 次循环与 5 次循环的 MSE 变化

涉及原理

  • 反向映射(Inverse Mapping):遍历目标图每个像素,通过逆旋转矩阵反推原图对应坐标 → 保证目标图无"空洞"
  • 最近邻 vs 双线性的误差特性差异
    • 最近邻插值:本质是离散坐标取整。单次变换产生锯齿伪影(MSE 较高),但多次循环后 MSE 趋于稳定——因为第 1 次循环已将所有像素"钉死"在离散网格上,后续循环不再产生新的舍入误差
    • 双线性插值:每次变换 = 一次低通滤波。单次效果平滑自然(MSE 较低),但 5 次循环(实际 10 次重采样)后 MSE 持续增长、图像越来越模糊——高频细节被反复平滑,信息不可逆流失
  • 医学启示:应尽量减少非必要的空间重采样步骤,以保护原始病理信息的完整性

实验 2:强度变换 — 对数变换与幂律变换的参数优化

实验内容:使用 lab2_CT.npy 头部 CT 数据,通过矩阵运算手动实现对数和幂律(Gamma)两种非线性强度变换。分别调整对数变换的尺度参数 \(v\)(取 \(v=1, 10, 100\))和幂律变换的指数 \(\gamma\)(取 \(\gamma=0.3, 0.6, 2.0, 4.0\)),观察不同参数对图像视觉效果的影响。最后针对肺部组织观察骨骼结构观察两个具体临床目标,分别设计最优变换策略。

实验步骤

  1. 将 CT 图像归一化到 \([0,1]\) 区间

  2. 实现广义对数变换 \(s = c \cdot \log(1 + v \cdot r)\),测试 \(v=1, 10, 100\) 的效果

  3. 实现幂律变换 \(s = c \cdot r^\gamma\),测试 \(\gamma=0.3, 0.6, 2.0, 4.0\) 的效果

  4. 针对肺部组织(暗区),采用 \(v=50\) 的对数变换进行定向增强

  5. 针对骨骼结构(亮区),采用 \(\gamma=3.0\) 的幂律变换进行定向增强

涉及原理

  • 对数变换的数学特性:导数 \(\frac{1}{1+v \cdot r}\)\(r\) 增大单调递减 → 只能单方向"提亮暗部"。\(v\) 越大,对极暗像素的敏感度越高(暗部提亮越剧烈),但亮区过曝风险越大
  • 幂律变换的双向控制\(\gamma < 1\) 时曲线上凸(拉伸暗区),\(\gamma > 1\) 时曲线下凹(压暗背景、拉伸亮区)。幂律变换覆盖的临床应用场景远比对数为广
  • 临床导向的参数设计:医学图像处理中不存在"绝对最佳参数"。观察肺部(极低灰度)需要高 \(v\) 对数或低 \(\gamma\) 幂律;观察骨骼(极高灰度)需要高 \(\gamma\) 幂律,将对数变换完全失效
  • \(\gamma=2.0\) 的直观最优:在一般头部 CT 中,\(\gamma=2.0\) 能有效压制软组织底噪、将背景过滤干净,同时大幅拉开骨骼对比度,视觉上最清晰

实验 3:空间滤波增强管线 — Laplacian + Sobel 复合增强

实验内容:使用 lab2_filter.npy X-Ray 影像数据,设计一条双分支复合增强管线。必须包含 8-邻域 Laplacian 滤波器和 X/Y 两个方向的 \(3 \times 3\) Sobel 滤波器,并在此基础上自主设计额外步骤形成完整管线,最终输出临床可用的增强图像。

实验步骤(8 步管线):

步骤 操作 作用
1 加载原图 基础底图
2 分支 A:8-邻域 Laplacian 滤波 \(\begin{bmatrix}-1&-1&-1\\-1&8&-1\\-1&-1&-1\end{bmatrix}\) 提取所有高频变化(含边缘 + 噪声)
3 分支 A:Laplacian 叠加原图 \(\text{img} + \text{laplacian}\) 产生初级锐化图——边缘清晰但被雪花噪声淹没
4 分支 B:Sobel X + Sobel Y 双方向滤波 只提取粗壮的骨骼主边缘(一阶微分"迟钝",忽略细微噪声)
5 分支 B:\(5 \times 5\) 均值平滑 Sobel 结果 将锐利边缘转变为带灰阶过渡的平滑权重掩膜
6 掩膜相乘:步骤 3 × 步骤 5 在平坦区掩膜系数趋近 0 → 噪声被压制;在边缘区掩膜放行 → 细节保留
7 叠加原图:\(\text{img} + \text{masked\_laplacian}\) 将过滤后的纯净细节加回原图,背景依然平滑
8 Gamma 提亮:\(\gamma = 0.5\) 拉伸动态范围,使骨骼微观纹理层次分明

涉及原理

  • 二阶微分(Laplacian)的过度敏感:拉普拉斯核对灰度突变极其敏感,能抓取微细纹理,但同时也将背景高频噪声急剧放大——直接使用会导致画面被"雪花噪声"淹没,丧失临床价值
  • 一阶微分(Sobel):Sobel 中心权重加倍(2 和 -2)提供内置平滑,只对粗壮真实结构边缘有强响应,恰好弥补 Laplacian 的过度敏感
  • 设计哲学:利用一阶微分(Sobel)的抗噪性,制作平滑权重掩膜去约束和过滤二阶微分(Laplacian)的噪声——不同数学工具的优势互补、化解矛盾
  • 复合管线的医学意义:最终输出在大幅提升骨骼锐度的同时,完美维持软组织背景的纯净与平滑,具备临床诊断价值

历年卷解答

一、伽马变换的性质哪个是对的(2020)

知识点定位:点处理(Point Processing)— 伽马变换

伽马变换的核心性质

\[s = c \cdot r^\gamma\]
性质 对/错 说明
伽马变换是线性变换 伽马变换是非线性变换\(s = cr^\gamma\) 不是直线关系)
\(\gamma < 1\) 时整体变亮 暗区被拉伸,亮区被压缩 → 图像整体提亮
\(\gamma > 1\) 时整体变亮 \(\gamma > 1\) 时压缩暗区、拉伸亮区 → 图像整体变暗
\(\gamma = 1\) 时是恒等变换 \(s = cr\),若 \(c=1\) 则为恒等变换

常见正确说法

  • 伽马变换是非线性的点处理操作
  • \(\gamma < 1\) 增强暗区细节,图像整体提亮(适合偏暗图像)
  • \(\gamma > 1\) 增强亮区细节,图像整体变暗(适合偏亮图像)
  • 常用于显示设备的亮度响应补偿(伽马校正)

二、对数变换是灰度值的线性变换(2020)

知识点定位:点处理(Point Processing)— 对数变换

答案错误。

对数变换 \(s = c \cdot \log(1+r)\)非线性变换。其特点:

  • 压缩高灰度(偏亮、白)区域(大 \(r\) 值被"压扁")
  • 扩展低灰度(偏黑、暗)区域(小 \(r\) 值被"拉宽")
  • 适用于动态范围很大的图像(如傅里叶频谱),增强暗区细节的可视性
  • 与伽马变换、指数变换一样,都属于非线性点处理

三、灰度直方图的说法(2021)

知识点定位:直方图(Histogram)的基本概念

常见判断

说法 对/错 解释
直方图保留了像素的空间位置信息 直方图不包含空间信息,只统计各灰度级像素数量
不同图像可以有相同的直方图 像素位置被打乱不会改变直方图
直方图是灰度的概率密度函数估计 归一化后 \(p(r_k)=n_k/n\) 即为 PDF 估计
直方图可以反映图像的亮度 均值 \(\mu\) 反映亮度
直方图可以反映图像的对比度 方差 \(\sigma^2\) 反映对比度(分布越分散对比度越高)

四、直方图均衡化后亮度、对比度是否改变(2021)

知识点定位:直方图均衡化(Histogram Equalization)

答案

对比度 — 增大:直方图均衡化将灰度级拉伸到整个 \([0, L-1]\) 范围,使得像素灰度分布更加均匀,灰度动态范围被充分利用。因此对比度总体上增大

亮度 — 可能改变:均衡化后图像的均值会发生改变。若原图中大量像素集中在低灰度(暗图),均衡化后暗区被拉伸,均值可能向右移动(变亮);反之则可能向左移动。亮度变化方向取决于原图的灰度分布

总结

  • 均衡化一定增大对比度(灰度分布被拉宽)
  • 均衡化亮度不保证不变(均值可能漂移)
  • 均衡化后直方图并非完美平坦(离散情况下是近似均匀)

五、图像灰度方差较大反映了什么(2022)

知识点定位:直方图统计量

答案对比度高。

解释:

\[\sigma^2 = \sum_{k=0}^{L-1} (r_k - \mu)^2 \cdot p(r_k)\]
  • 方差(二阶中心矩)衡量灰度值偏离均值的程度
  • 方差大 → 像素灰度值分散在各个灰度级 → 黑白分明,对比度高
  • 方差小 → 像素灰度集中在均值附近 → 灰度单一,对比度低
统计量 反映属性
均值 \(\mu\) 亮度(Brightness)
方差 \(\sigma^2\) 对比度(Contrast)

六、选择合适的 Gamma 变换(2022)

知识点定位:点处理 — 伽马变换

选择原则

图像特点 推荐 \(\gamma\) 原因
图像偏暗(欠曝) \(\gamma < 1\)(如 0.4, 0.6) 拉伸暗区,压缩亮区 → 提亮暗部细节
图像偏亮(过曝) \(\gamma > 1\)(如 1.5, 2.0) 压缩暗区,拉伸亮区 → 压暗暗部、增强亮部细节
亮度适中 \(\gamma = 1\) 恒等变换,不做改变

判断方法:看原图直方图分布

主要像素集中在低灰度端 → 偏暗 → 选 \(\gamma < 1\);集中在高灰度端 → 偏亮 → 选 \(\gamma > 1\)

七、直方图均衡化解决什么问题 + 医学应用(2022 大题)

知识点定位:直方图均衡化

(1)直方图均衡化解决什么问题?

直方图均衡化主要解决以下核心问题:

  • 图像对比度低、整体偏暗或偏亮:当图像的灰度值集中分布在较窄的灰度区间内时(直方图呈窄而尖的山峰状),图像表现为低对比度,键解剖结构或病变区域的细节难以辨识。直方图均衡化通过重新分配灰度值,将原本集中的灰度分布拉伸到整个 \([0, L-1]\) 范围,使直方图趋于均匀分布,提高图像对比度。

  • 灰度动态范围不足:某些医学成像设备输出的图像只利用了可显示灰度级的一小部分(如仅占 256 级的中间 30 级),导致图像灰度层次贫乏。均衡化充分利用全部灰度级,将灰度级"铺满"整个范围。

  • 细节不可见:在人眼视觉特性中,细微信号差异在低对比度图像中无法被分辨。均衡化后灰度差被拉大 → 原本模糊的组织边界变得清晰可辨 → 细节从"看不见"变为"看得见"。

总结:直方图均衡化的本质是以累积分布函数(CDF)作为变换函数,使输出图像的灰度直方图尽可能均匀,从而增大图像的动态范围和整体对比度,使隐藏的细节和结构变得可见。

(2)直方图均衡化在医学图像处理领域的应用

应用一:增强脑部 MRI 图像的对比度以辅助肿瘤分割

MRI 图像的原始灰度动态范围常受限于扫描参数和线圈灵敏度,部分区域的肿瘤边界与正常组织灰度接近,肉眼难以区分。对脑部 MRI 图像应用直方图均衡化后,原本微弱的肿瘤-正常组织灰度差异被显著放大,肿瘤边界更加清晰。这为后续的肿瘤分割算法(如 Otsu 阈值法、区域生长法、深度学习分割网络等)提供了更高质量的输入图像,提升分割精度。

应用二:X 射线胸片中增强肺部结节的可检测性

X 射线胸片的原始直方图往往集中在较暗的灰度区域(整体偏暗),肺部微小结节(如早期肺癌)与周围组织的对比度极低。直方图均衡化将灰度拉伸到全范围后,结节的灰度与肺实质背景的差异被放大,放射科医生更容易在阅片时发现早期病变。

应用三:数字乳腺 X 线摄影(Mammography)中增强微钙化点

乳腺 X 线图像中,微钙化点(乳腺导管癌的早期标志)极其微小且与致密乳腺组织的灰度差极小。直方图均衡化在局部区域应用后,微钙化点的高灰度特征被放大,显著提升了早期乳腺癌的检出率。