mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6mobile wallpaper 7mobile wallpaper 8mobile wallpaper 9mobile wallpaper 10mobile wallpaper 11mobile wallpaper 12mobile wallpaper 13
5711 字
17 分鐘
绪论与数字图像基础
2026-04-27

第 1 章 绪论与数字图像基础#

学习目标:建立对”数字图像”的完整认知——它是什么、如何产生、如何用数学描述、如何在计算机中存储与操作。 本章是后续所有章节的地基,概念密度大,请反复咀嚼。

1.1 从”光”到”像”:图像的物理来源#

要理解数字图像,必须先理解图像是如何诞生的。图像的本质,是光能量在二维平面上的分布

1.1.1 成像过程的完整链路#

一幅相机拍摄的图像,物理链路如下:

① 光源 ——发出电磁波——> ②场景
照度 i(x, y) ③反射/透射 r(x, y)
④ 镜头(聚焦)
⑤ 传感器 (CCD/CMOS)
光 → 电荷 → 电压
⑥ ADC 采样 + 量化
⑦ 数字图像 f[m, n]
存入存储器

其中:

  • 照度 (Illumination) (i(x, y)):光源落在场景表面的功率密度,单位 lux。
  • 反射率 (Reflectance) (r(x, y)):场景表面的属性,(r \in [0, 1])。
  • 观测到的亮度: [ f(x, y) = i(x, y) \cdot r(x, y), \quad 0 < i(x, y) < \infty, \quad 0 < r(x, y) < 1 ]

这就是图像的加性/乘性模型最原始的形态。记住这个分解——第 9 章”同态滤波”的全部理论基础都在这里:

  • (i) 随空间缓慢变化(低频) → 不均匀光照的元凶
  • (r) 反映物体细节(高频) → 我们真正感兴趣的内容

取对数可以把乘法拆成加法: [ \ln f(x, y) = \ln i(x, y) + \ln r(x, y) ] 随后在频域分别压制 (\ln i) 的低频、提升 (\ln r) 的高频——这就是同态滤波。

1.1.2 为什么是”二维函数”?#

一个真实三维场景要变成二维图像,必须经过投影(第 2 章详细讲)。简单的针孔模型:

世界点 P = (X, Y, Z) 像平面 (焦距 f)
*
\
\ ↓
\ <-- 光线 --> │
\ │
O(相机) x = f X / Z
y = f Y / Z

所以一旦成像,三维深度 (Z) 就被”除”掉了——这是”深度恢复”/3D 重建成为困难问题的根本原因。

1.1.3 图像的数学定义(完整版)#

定义 1.1(图像):一幅图像是定义在二维有界区域 (\Omega \subset \mathbb{R}^2) 上的函数 [ f: \Omega \to \mathcal{V} ]

  • 若 (\mathcal{V} = \mathbb{R}) 或 ([0, L-1]) → 灰度图
  • 若 (\mathcal{V} = \mathbb{R}^3) (或 ([0, 255]^3)) → 彩色图
  • 若 (\mathcal{V} = \mathbb{R}^n) → 多光谱 / 高光谱图

定义 1.2(数字图像):如果 (\Omega) 被离散化为有限网格 ({(m, n) : 0 \leq m < M, 0 \leq n < N}),并且 (\mathcal{V}) 取有限集合(如 ({0, 1, \ldots, 255})),那么称 (f) 为数字图像

⚠️ 工程化理解:一幅 8-bit 的 1920×1080 照片,就是 1920×1080×3 个整数构成的大矩阵。所有算法的本质,都是对这些数的变换。


1.2 图像处理、计算机视觉、图形学的区别#

初学者经常混淆这四个领域,这里彻底讲清:

领域输入输出代表任务
数字图像处理图像图像去噪、增强、压缩、复原
计算机视觉图像语义/几何信息分类、检测、分割、3D 重建
计算机图形学模型参数图像渲染、动画、光线追踪
模式识别任何数据类别分类、聚类(CV 是其子集)

直观记忆法

  • 图像处理 = “P 图软件”干的事(PS、美图)
  • 计算机视觉 = “让机器看懂图”(人脸识别、自动驾驶)
  • 计算机图形学 = “用数学画图”(3D 游戏、CG 电影)

1.2.1 图像处理的三个层次#

低层处理 (Low-level)

  • 输入:像素 → 输出:像素
  • 不涉及语义
  • 例:去噪、锐化、HDR、Gamma 校正
  • 本课程 Ch 1~9 基本都在这个层次

中层处理 (Mid-level)

  • 输入:像素 → 输出:描述子/区域
  • 开始”提取信息”
  • 例:边缘检测、分割、特征点检测
  • 本课程 Ch 10~11

高层处理 (High-level)

  • 输入:描述子 → 输出:语义/决策
  • 接近人类认知
  • 例:识别、理解、推理
  • 本课程 Ch 12 + 计算机视觉进阶课程

1.3 数字图像处理的应用(展开详解)#

1.3.1 医学成像#

模态原理典型处理任务
X-ray穿透吸收差异增强对比度、骨折检测
CT多角度 X-ray + 滤波反投影重建3D 重建、器官分割
MRI核磁共振去噪、多序列配准
超声回波散斑噪声抑制、病灶跟踪
病理 (WSI)高倍显微切片细胞计数、癌症筛查

医学图像的特点:16-bit 深度、低对比度、噪声复杂、数据珍贵。CLAHE、维纳滤波、U-Net 分割是这里的常客。

1.3.2 遥感卫星#

  • 多光谱(Landsat 7 波段、Sentinel-2 13 波段)
  • 地物分类:城市/农田/水体/森林
  • 变化检测:灾害评估、违建监测
  • 超分重建:从低分辨率卫星图合成高分辨率

1.3.3 工业视觉#

  • 尺寸测量(微米级)
  • 表面缺陷(划痕、气泡)
  • 字符识别(LED 码、钢印)
  • 机器人视觉引导

关键词:高速(ms 级)、稳定(ppm 误报率)、可解释。所以工业现场传统算法(形态学 + 阈值)仍大量使用。

1.3.4 消费电子#

手机相机 ISP 流水线就是一个”行走的图像处理教科书”:

RAW Bayer → 去马赛克 → 白平衡 → 去噪 → Gamma → HDR 融合 → 锐化 → JPEG

每一步都对应本课程某一章。现代手机的”夜景模式”、“人像模式”、“4K 视频降噪”都是多帧融合 + 深度学习 + 传统图像处理的混合系统。

1.3.5 自动驾驶、安防、娱乐#

  • 车道线 (Ch 10 Hough)
  • 行人检测 (Ch 11 HOG + Ch 12 YOLO)
  • 人脸识别 (Ch 12)
  • AR 贴纸、换脸、美颜(基于关键点 + 仿射 + GAN)

1.4 数字图像处理系统的组成#

一个完整的数字图像处理系统包含以下六个部分,缺一不可:

┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
│ ① 图像 │→│ ② 数字化 │→│ ③ 存储 │→│ ④ 处理 │→│ ⑤ 显示 │
│ 获取 │ │ A/D 转换│ │ 内存/硬盘│ │ CPU/GPU │ │ 显示器 │
└─────────┘ └─────────┘ └─────────┘ └─────────┘ └─────────┘
▲ │
│ ┌───────────────────────┘
│ ▼
│ ┌─────────┐
└────────│ ⑥ 通信 │(网络/总线)
└─────────┘

1.4.1 图像获取 (Acquisition)#

光电传感器把光子转为电荷,再转为电压。主要有两种:

CCD (Charge-Coupled Device)#

  • 每个像素电荷一行一行串行读出
  • 读出过程中”传递”电荷(Charge-Coupled)
  • 优点:噪声低、一致性好、动态范围大
  • 缺点:功耗高、成本高、速度慢
  • 应用:天文、科学级相机、早期数码相机

CMOS (Complementary Metal-Oxide-Semiconductor)#

  • 每个像素独立包含放大器,可随机寻址并行读出
  • 优点:速度快、功耗低、与数字电路工艺兼容
  • 缺点:早期噪声大、一致性差(现已通过背照式 BSI、堆叠式解决)
  • 现代主流:从手机到单反全部采用

1.4.2 采样与量化 (A/D)#

见第 2 章详述。核心思想:

  • 空间采样:决定分辨率(多少像素)
  • 幅度量化:决定位深(每像素多少 bit)

1.4.3 存储#

单幅图像存储空间: [ \text{字节数} = M \times N \times c \times \frac{k}{8} ] 其中 (M\times N) 为分辨率,(c) 为通道数,(k) 为每通道位深。

数值实例

  • 4K RGB 8-bit 单帧:(3840 \times 2160 \times 3 \times 1 \approx 23.7) MB
  • 4K HDR 10-bit:× 10/8 ≈ 30 MB
  • 4K 60fps 1 分钟 RAW:30 MB × 60 × 60 ≈ 108 GB

所以视频压缩 (Ch 8) 才如此重要——不压缩根本存不下

1.4.4 处理#

  • CPU:通用、串行、缓存局部性重要
  • GPU:SIMD 并行,适合卷积、FFT、CNN
  • NPU/DSP:手机 ISP,专用电路
  • FPGA:低延迟、工业线扫

1.4.5 显示#

  • CRT(已淘汰):Gamma ≈ 2.2,这是为什么 sRGB 标准仍沿用这个值
  • LCD/OLED:线性响应,但为兼容历史文件仍在输入端做 Gamma 校正

1.5 人类视觉系统 (HVS) 基础#

很多图像处理算法设计直接模仿人眼特性。不理解 HVS,就无法理解为什么某些算法”看起来好”。

1.5.1 眼球结构简图#

巩膜
┌─────────┐
角膜 → │ 晶状体 │ → 视网膜 (Retina)
│ (透镜)│ │
└─────────┘ ▼
感光细胞层
┌──────────┐
│ 视锥+视杆 │
└────┬─────┘
神经节细胞
视神经 → 大脑视觉皮层

关键参数:

结构参数工程启示
晶状体焦距约 17 mm类比相机焦距
瞳孔直径2~8 mm动态光圈
视网膜像素约 1.26 亿感光细胞相当于 126 MP 传感器
中央凹 (Fovea)直径 1.5 mm,视锥密度峰值解释为什么”盯着看”最清晰
最小可分角约 1/60 度(1 arcmin)视力 1.0 的定义

1.5.2 视锥与视杆#

细胞数量功能敏感度
视锥 Cones600~700 万彩色、强光视觉中等
视杆 Rods7500 万~1.5 亿亮度、弱光视觉极高

视锥有三种(L/M/S 分别对红/绿/蓝敏感)——这是三色理论、RGB 显示器、拜耳阵列的生物学基础。

1.5.3 亮度适应与韦伯定律#

人眼能感知的亮度范围约 (10^{-6}) 到 (10^4) cd/m²,跨度 (10^{10})。但同一时刻只能分辨其中约 2 个数量级——这叫亮度适应 (Brightness Adaptation)

韦伯定律 (Weber’s Law):在某一亮度 (I) 下能察觉的最小亮度差 (\Delta I): [ \frac{\Delta I}{I} \approx \text{const} ]

推论:如果把亮度 (I) 表示为 (y = \log I),则人眼感知 (\Delta y = \Delta I / I) 变为常数——即人眼的亮度感知近似对数响应

工程后果

  1. 显示器要做 Gamma 编码,让编码空间近似感知均匀
  2. 对数变换 (s = c\log(1 + r)) 能压缩动态范围、让暗部细节可见(Ch 3)
  3. JPEG 中色度量化表设计也考虑了这种非线性敏感度(Ch 8)

1.5.4 同时对比与马赫带#

同时对比 (Simultaneous Contrast):同样的灰度块在不同背景下看起来亮度不同。

┌──────┬──────┐
│ 黑 │ 白 │
│ [灰] │ [灰] │ 中间两个灰色方块完全相同!
│ │ │ 但在黑背景上显得更亮
└──────┴──────┘

马赫带 (Mach Bands):在灰度阶梯过渡处,人眼会看到边缘过冲——在深色区边缘显得更暗、在浅色区边缘显得更亮。

原理:视网膜神经节细胞有中心-周边拮抗感受野,相当于一个拉普拉斯滤波器。

  • 中心兴奋 + 周边抑制 = 负二阶导 = 高通 / 边缘增强

这是人眼天然的边缘检测机制,直接启发了:

  • 拉普拉斯算子(Ch 3)
  • LoG/DoG(Ch 3、11 SIFT)
  • CNN 早期层学到的边缘检测核

1.5.5 空间频率敏感度 (CSF)#

人眼对不同空间频率的敏感度不同,呈带通特性:

  • 太低频(大片纯色)→ 不敏感
  • 中频(约 3-8 周/度)→ 最敏感
  • 太高频(密集细节)→ 不敏感

这是 JPEG 量化表”中低频细、高频粗”设计的生理依据。


1.6 电磁波谱与图像获取#

人眼只能看到可见光(380~780 nm),但图像处理不限于可见光

1.6.1 全电磁波谱#

波长 10⁻¹⁴m ... 10⁻¹⁰m ... 10⁻⁷m ... 10⁻³m ... 10⁰m
γ射线 X射线 紫外 可见光 红外 微波 无线电
能量大 ────>──── 能量小
频率高 频率低

可见光七色波长(记住更好): [ \text{紫}(380\text{ nm}) \to \text{蓝}(450) \to \text{青}(500) \to \text{绿}(550) \to \text{黄}(580) \to \text{橙}(600) \to \text{红}(750) ]

1.6.2 不同谱段的成像特色#

谱段波长典型应用代表处理
γ 射线<0.01 nm正电子发射 (PET)低剂量去噪
X 射线0.01-10 nm医学透视、CT重建、增强
紫外10-400 nm显微荧光、验钞伪彩色
可见光400-700 nm日常成像全套算法
近红外 (NIR)0.7-1.4 μm植被监测 (NDVI)、夜视多光谱融合
热红外8-14 μm热成像枪、红外夜视对比拉伸
微波mm-mSAR 雷达(全天候)去斑、配准
无线电>1 mMRI、射电望远镜反投影重建

1.6.3 除电磁波外的成像方式#

  • 超声:机械波,医学/工业无损检测
  • 电子显微镜:电子束,原子级分辨率
  • 原子力显微镜 (AFM):机械探针扫描
  • 深度相机:结构光(Kinect)、ToF(iPhone LiDAR)

处理流程和算法大同小异——所以学好”数字图像处理”,在各种模态都能迁移。


1.7 数字图像的数学表示#

1.7.1 矩阵表示#

一幅 (M \times N) 的灰度图像是一个矩阵: [ f = \begin{bmatrix} f(0,0) & f(0,1) & \cdots & f(0, N-1) \ f(1,0) & f(1,1) & \cdots & f(1, N-1) \ \vdots & \vdots & \ddots & \vdots \ f(M-1,0) & f(M-1,1) & \cdots & f(M-1, N-1) \end{bmatrix} ]

  • (M):高度(行数,通常对应 y 轴)
  • (N):宽度(列数,通常对应 x 轴)

1.7.2 坐标系混乱——新手第一大坑#

冈萨雷斯教材:(f(x, y)),(x) 是行索引(向下),(y) 是列索引(向右)

y →
┌───────
x │f(0,0) f(0,1) ...
↓ │f(1,0) f(1,1) ...
│ .

OpenCV / NumPyimg[row, col],与教材一致

img[2, 5] # 第 2 行、第 5 列
img.shape # (H, W, C)

OpenCV 的绘制函数 却用 (x, y) 其中 (x) 是、(y) 是

cv2.circle(img, (x=col, y=row), radius, color)
cv2.line(img, pt1=(x1, y1), pt2=(x2, y2), color)

记忆法

  • 存储/索引[row, col](行在前)
  • 绘制/画(x, y)(横在前,与数学直角坐标系一致)

踩过一次坑就不会忘。

1.7.3 位深度与存储#

位深度 (Bit Depth) (k):每个像素用多少 bit 表示 → 灰度级 (L = 2^k)。

位深灰度级应用
1 bit2 级传真、扫描文档
8 bit256 级消费照片(最常见)
10 bit1024 级HDR 电视、广色域视频
12 bit4096 级RAW 相机
16 bit65536 级医学影像 (DICOM)、科研、专业后期
32-bit float连续中间计算、HDR 渲染

为什么需要高位深?

  • 避免伪轮廓(Ch 2 详细说)
  • 后期调整空间大(暗部拉亮不露马脚)
  • 医学诊断需要微弱对比度差异

1.7.4 通道数#

类型通道位深总 bit
二值图111
灰度图188
RGB3824
RGBA4832
高光谱n=16~200+8~16极大
深度图116 float16

实战注意:OpenCV 默认读入的是 BGR 而不是 RGB!matplotlib 是 RGB,所以 plt.imshow(cv2.imread(p)) 会看到颜色错乱。正确做法:

img = cv2.imread(p)
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))

1.8 像素间的基本关系(重点)#

这一节是后续所有邻域运算、形态学、连通域分析的基础。

1.8.1 邻域 (Neighborhood)#

对位于 ((x, y)) 的像素 (p),定义:

4-邻域 (N_4(p)):上下左右 4 个像素 [ N_4(p) = {(x-1, y), (x+1, y), (x, y-1), (x, y+1)} ]

对角邻域 (N_D(p)):4 个对角像素 [ N_D(p) = {(x-1, y-1), (x-1, y+1), (x+1, y-1), (x+1, y+1)} ]

8-邻域 (N_8(p) = N_4(p) \cup N_D(p)):周围 8 个像素

图示:

N_D N_4 N_D ● ● ●
N_4 (p) N_4 即 ● p ●
N_D N_4 N_D ● ● ●

1.8.2 连通性 (Connectivity)#

给定像素值集合 (V)(比如 (V = {1}) 表示”前景”):

  • 4-连通:(p, q) 值都在 (V) 中, (q \in N_4(p))
  • 8-连通:(p, q) 值都在 (V) 中, (q \in N_8(p))
  • m-连通(混合连通):(p, q) 值都在 (V) 中,满足以下条件之一:
    • (q \in N_4(p))
    • (q \in N_D(p)) 且 (N_4(p) \cap N_4(q) \cap V = \varnothing)

为什么需要 m-连通?

看这个例子(1 表示前景):

0 1 1
0 1 0 如果用 8-连通...
1 1 0

中心像素到右上 1、右上 1 到中心,有两条”路径”——环路歧义,在边界跟踪时会无限循环。

m-连通规定”若对角相邻,则其共同 4-邻域内不能有前景”,强制路径唯一。

数值示例

p: (0, 0) = 1 q: (1, 1) = 1
查 N_4(p) ∩ N_4(q) ∩ V:
N_4(p) = {(-1,0), (1,0), (0,-1), (0,1)}
N_4(q) = {(0,1), (2,1), (1,0), (1,2)}
公共邻居 = {(1,0), (0,1)}
若这两个位置有一个 = 1,则 p, q 不 m-连通

1.8.3 路径与连通分量#

  • 路径:从 (p) 到 (q) 的像素序列 (p = p_0, p_1, \ldots, p_n = q),每个相邻对都连通
  • 连通分量 (Connected Component):彼此连通的前景像素构成的极大集合

OpenCV:

num_labels, labels = cv2.connectedComponents(binary_img)
# num_labels: 分量个数(含背景 0)
# labels: 与原图同尺寸,每像素标注所属分量编号

1.8.4 距离度量 (Distance Metrics)#

对两像素 (p = (x_1, y_1)) 和 (q = (x_2, y_2)):

欧氏距离 (D_e): [ D_e(p, q) = \sqrt{(x_1 - x_2)^2 + (y_1 - y_2)^2} ]

  • 等距面:
  • 物理上最准确
  • 缺点:有开方,计算贵

曼哈顿/城市街区距离 (D_4): [ D_4(p, q) = |x_1 - x_2| + |y_1 - y_2| ]

  • 等距面:45° 旋转的正方形(菱形)
  • 对应 4-连通路径长度

棋盘距离 (D_8): [ D_8(p, q) = \max(|x_1 - x_2|, |y_1 - y_2|) ]

  • 等距面:正方形
  • 对应 8-连通路径长度

Chamfer 距离:(D_4) 和 (D_8) 的加权组合(3-4 或 5-7-11),近似 (D_e),有 (O(N)) 快速算法。

距离图示(从中心 (\bullet) 出发 (D=2) 的等距面):

D_e = 2 D_4 = 2 D_8 = 2
● ● ●●●●●
●●● ●●● ● ●
●●●●● ●●●●● ● ●
●●● ●●● ● ●
● ● ●●●●●
圆 菱形 正方形

距离变换(DT):对二值图,给每个前景像素计算其到最近背景像素的距离,结果称为距离图,Ch 9 会用到。


1.9 基本像素运算(概览)#

1.9.1 算术运算#

对两幅同尺寸图像: [ g(x,y) = f_1(x,y) \pm f_2(x,y) ]

加法

  • 多帧平均降噪:(\bar{f} = \frac{1}{N}\sum_{k=1}^{N} f_k),噪声方差降为原来的 (1/N)(信噪比提升 (\sqrt{N}))
  • HDR 合成

减法

  • 背景减除:(g = f - f_{\text{bg}}) 用于运动检测、CT 造影剂显示
  • 时间差分:视频中检测变化

⚠️ 8-bit 整数运算会溢出:200 + 100 = 300 超 255。OpenCV 默认做饱和截断(Saturation),即 255。必须时用 cv2.addWeighted 或转 float。

乘法

  • 掩膜 (Masking):(g = f \cdot m),(m \in {0, 1}) 取出 ROI
  • Alpha 混合:(g = \alpha f_1 + (1-\alpha) f_2)

除法

  • 阴影消除:(g = f / f_{\text{flat}})(平场校正)
  • 荧光成像比值

1.9.2 逻辑运算(只对二值图)#

  • AND:两图都为 1 → 1(求交集 / ROI 裁剪)
  • OR:任一为 1 → 1(合并)
  • NOT:1↔0(反相 / 取补)
  • XOR:不同则 1(差异检测)

1.9.3 单点灰度变换#

[ s = T(r) ] 完整讨论见第 3 章。

1.9.4 邻域运算#

[ g(x, y) = T[f(S_{xy})] ] 其中 (S_{xy}) 是以 ((x, y)) 为中心的邻域。这是滤波的统一形式,第 3 章详细展开。

1.9.5 几何变换#

[ (x’, y’) = T(x, y) ] 平移、旋转、缩放、仿射、透视——第 2 章详细推导。


1.10 一个例子:从零实现 读图→灰度→统计#

为了把本章所有概念串起来,我们手动走一遍最简单的流程:

import cv2
import numpy as np
# 1) 读取一幅 RGB 图(实际 OpenCV 返回 BGR)
img = cv2.imread('lena.png') # shape=(H, W, 3), dtype=uint8
print('shape:', img.shape, 'dtype:', img.dtype)
# 2) 转灰度:按 ITU-R BT.601 加权(模拟人眼对绿敏感)
# Y = 0.299*R + 0.587*G + 0.114*B
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 3) 基本统计
print('min =', gray.min(), 'max =', gray.max())
print('mean =', gray.mean(), 'std =', gray.std())
# 4) 直方图(手动实现)
hist = np.zeros(256, dtype=np.int32)
for v in gray.flatten():
hist[v] += 1
# 或 NumPy 一行:hist, _ = np.histogram(gray, bins=256, range=(0, 256))
# 5) 取中间 100x100 子图
H, W = gray.shape
cx, cy = W // 2, H // 2
roi = gray[cy-50:cy+50, cx-50:cx+50]
# 6) 在原图上画一个红色矩形(注意 BGR 和坐标)
out = img.copy()
cv2.rectangle(out, (cx-50, cy-50), (cx+50, cy+50), (0, 0, 255), 2)
# 7) 保存
cv2.imwrite('out.png', out)

消化这段代码(手动跑一遍!),本章 90% 内容就通了。


1.11 本章公式/概念速查表#

概念定义/公式
图像模型(f(x, y) = i(x, y) \cdot r(x, y))
像素坐标(教材)(f(x, y)),(x)=行、(y)=列
像素坐标(OpenCV 绘制)(col, row) = (x, y)
存储空间(\text{Bytes} = MNc k / 8)
灰度级(L = 2^k)
韦伯定律(\Delta I / I \approx c)
4-邻域({(x\pm1, y), (x, y\pm1)})
8-邻域4-邻域 ∪ 对角邻域
(D_e)(\sqrt{\Delta x^2 + \Delta y^2})
(D_4)(
(D_8)(\max(
BGR↔RGBcv2.cvtColor(img, cv2.COLOR_BGR2RGB)

1.12 本章要点与面试考点#

✅ 必须掌握#

  • 图像的物理产生链路 + (f = i \cdot r) 分解
  • 图像处理、CV、CG、PR 的区别
  • 低/中/高层处理划分
  • 人眼视锥/视杆分布与三色理论
  • 韦伯定律 → 对数变换 / Gamma 设计的生理依据
  • 马赫带 → 边缘增强的生理依据
  • 存储空间计算 (M \times N \times c \times k/8)
  • 4/8/m-邻域及为什么需要 m-连通
  • 三种距离度量的等距面形状

💡 高频面试题(附完整答案)#

Q1. 为什么要使用 m-连通?

答:8-连通中对角相邻的像素可能产生多条路径,在边界跟踪、连通域标记时形成环路歧义。m-连通通过附加限制”对角邻居的共同 4-邻域内不得有目标像素”,消除重复路径,使任意两连通点间的路径唯一。这是边界跟踪、Freeman 链码算法正确工作的前提。


Q2. 8-bit 图像做均值滤波为何要转 float 中间计算?

答:假设 3×3 均值,累加 9 个像素,若直接 uint8 累加,最大 255×9 = 2295,超出 255 会发生溢出/截断。解法:

  1. 累加前 .astype(np.float32),最后再 .astype(np.uint8)
  2. cv2.blur / cv2.filter2D 内部已处理

Q3. 为什么人眼对数响应,这对图像编码有什么意义?

答:韦伯定律 (\Delta I / I \approx \text{const}),即亮度的”感知增量”与绝对亮度成反比。因此 (y = \log I) 近似均匀感知。

  • 若直接用 8 bit 线性存储亮度 → 暗部细节不足、亮部过剩
  • Gamma 编码 (y = x^{1/2.2}) 近似对数曲线,让 8 bit 更贴合人眼:暗部精度高,亮部粗
  • 这是 sRGB、JPEG、PNG 默认做 Gamma 编码的原因

Q4. RGB 转灰度的权重为什么是 0.299/0.587/0.114?

答:基于 ITU-R BT.601 标准,考虑人眼视锥对不同波长的敏感度——绿色占主导(~59%),红色次之(~30%),蓝色最低(~11%)。现代 BT.709(HDTV)权重略有调整:0.2126/0.7152/0.0722。


Q5. 一张 4096×3072 的 12-bit 彩色 RAW 图多大?

答:(4096 \times 3072 \times 3 \times 12 / 8 = 56{,}623{,}104) 字节 ≈ 54 MB。注意:

  • 若是 Bayer RAW,只有 1 个采样/像素 → 1/3 大小
  • 很多厂商用 16-bit 容器存 12-bit 数据,实际占用会更大

Q6. CCD 与 CMOS 的核心差异?为什么手机都用 CMOS?

答:

  • CCD:电荷行间传递、串行输出 → 噪声低但速度慢、功耗高
  • CMOS:每像素独立放大 + 随机寻址 → 速度快、功耗低、与数字电路工艺兼容
  • 手机需要高帧率视频、低功耗、小型化 → CMOS 是唯一选择。早期 CMOS 噪声大,现代通过 BSI(背照式)、堆叠式、像素合并已基本追平 CCD。

1.13 延伸阅读#

  • 主教材:Gonzalez & Woods, Digital Image Processing (4th), Ch 1-2
  • 生物学基础:D. H. Hubel, Eye, Brain, and Vision(视觉皮层的神经基础)
  • ISP 流程:Brown, Image Understanding for iPhone Photography 报告
  • 在线:HarvardX “Fundamentals of Neuroscience” 视觉部分
  • 论文:Mannos & Sakrison, “The effects of a visual fidelity criterion on the encoding of images”, IEEE Trans. IT, 1974(CSF 的经典)

学完本章,建议打开一张自己拍的照片,用 Python 手动完成:读入→查看 shape/dtype→转灰度→画直方图→算 (M\times N\times k/8) 对比文件大小,把所有数字都对上。只有亲手摸过数据,概念才真正成为你的。

分享

如果這篇文章對你有幫助,歡迎分享給更多人!

绪论与数字图像基础
https://lemusakuya.com/posts/study-notes/digital-image-processing/01_绪论与数字图像基础/
作者
レム・咲く夜
發布於
2026-04-27
許可協議
CC BY-NC-SA 4.0

部分資訊可能已經過時

目錄