图像基础回顾:像素与直方图、RGB与HSV色彩空间、噪声模型与信噪比

做低光照增强,说白了就是在跟像素打交道。你连像素都搞不明白,后面调参就是瞎蒙。这一章我把几个最基础、也最容易踩坑的概念捋一遍。嗯,都是我在项目里反复摔过跟头的地方。

2.1 像素——图像的最小单元

一张数字图像,本质上就是一个二维数组。每个格子就是一个像素。每个像素存的是一个数值——灰度图里是0~255的亮度值,彩色图里是三个通道的数值组合。

我刚开始做图像处理时,总觉得像素这东西太简单了,没啥好学的。直到有一次做夜间监控增强,发现图像暗部全是0,亮部全被裁成255——说白了就是动态范围被压碎了。那时候我才意识到:像素值的分布,直接决定了你能恢复多少细节。

关键认知:低光照图像中,大部分像素集中在0~50的低灰度区间。增强算法的本质,就是把这些挤在一起的暗像素“拉开”,让细节重新可见。

2.2 直方图——图像的“体检报告”

直方图统计的是每个灰度级上有多少个像素。横轴是灰度值(0~255),纵轴是像素数量。一张图好不好,直方图一眼就能看出来。

我习惯把直方图分成三种典型形态:

直方图形态 图像特征 典型场景
集中在左侧 整体偏暗,细节被压缩 夜间监控、暗光拍摄
集中在右侧 整体偏亮,可能过曝 强光下拍摄、逆光
集中在中间 对比度低,灰蒙蒙 雾天、水下、弱光均匀场景

你想想看,低光照增强的目标是什么?就是把左侧堆积的像素往右拉伸,同时不把中间和右侧的像素推过头。这就是直方图均衡化及其各种变体的核心逻辑。

我的习惯:拿到一张低光照图,第一件事就是看它的直方图。如果直方图左侧有一个“尖峰”且右侧几乎没像素,说明这张图的信噪比大概率很差,直接做全局增强会放大噪声。这时候我会先做局部自适应处理。

2.3 RGB与HSV色彩空间

做低光照增强,色彩空间的选择直接影响效果。我见过太多人直接在RGB上做增强,结果颜色全偏了。

2.3.1 RGB色彩空间

RGB是最直接的表示方式——红、绿、蓝三个通道叠加。每个通道0~255,三个通道组合出1600多万种颜色。

但RGB有个大问题:三个通道高度相关。你调整亮度,三个通道都得跟着变。我在项目中遇到过,用RGB做直方图均衡化,结果天空变成了紫色——因为三个通道的拉伸比例不一样,颜色就漂移了。

2.3.2 HSV色彩空间

HSV把颜色拆成三个独立分量:

  • H(Hue,色调):0°~360°,代表颜色种类
  • S(Saturation,饱和度):0~1,代表颜色纯度
  • V(Value,明度):0~1,代表亮度

为什么HSV更适合低光照增强?因为亮度和颜色分开了。你只动V通道,H和S保持不变,颜色就不会偏。我几乎所有低光照增强项目,第一步都是把图像从RGB转到HSV。

注意:RGB转HSV时,如果图像中有纯黑像素(R=G=B=0),H分量是未定义的。做除法时要注意除零保护。我曾经因为这个bug,调试了整整一个下午才找到原因。

下面这张图展示了RGB和HSV在低光照增强中的处理流程差异:

RGB vs HSV 低光照增强流程对比 RGB 输入图像 直接增强三个通道 颜色漂移风险高 RGB 输入图像 RGB → HSV 转换 仅增强 V 通道 颜色保持稳定 ⚠ 不推荐直接增强RGB

2.4 噪声模型与信噪比

低光照增强最大的敌人不是暗,是噪声。你增强亮度,噪声也跟着被放大了。所以理解噪声模型,是做增强的前提。

2.4.1 常见噪声类型

我在项目中遇到最多的噪声有三种:

噪声类型 产生原因 数学模型 典型表现
高斯噪声 传感器热噪声、电路噪声 均值为0,方差为σ² 整张图均匀分布的颗粒感
泊松噪声(散粒噪声) 光子到达的随机性 与信号强度平方根成正比 暗部噪声更明显
椒盐噪声 像素损坏、传输错误 随机出现纯黑或纯白像素 离散的黑白点

低光照场景下,泊松噪声是主导。因为光线弱,光子数量少,随机波动就相对更大。这也是为什么暗部看起来总是“脏脏的”。

2.4.2 信噪比(SNR)

信噪比就是信号功率与噪声功率的比值,单位是分贝(dB)。公式很简单:

SNR = 10 * log10(信号功率 / 噪声功率)

信噪比越高,图像质量越好。一般来说:

  • SNR > 40 dB:图像质量优秀,噪声几乎不可见
  • SNR 20~40 dB:可接受,但暗部可能有可见噪声
  • SNR < 20 dB:噪声明显,增强后需要额外去噪

实战经验:我做过一个夜间车牌识别项目,原始图像的SNR只有12 dB。直接做直方图均衡化后,SNR降到了8 dB——噪声被放大了。后来我改用先做BM3D去噪再做增强,SNR提升到28 dB,识别率从43%涨到了91%。

2.4.3 增强与噪声的博弈

低光照增强本质上是在做一件事:用信噪比换可见度。你提升暗部亮度,信号和噪声同时被放大。如果原始SNR太低,增强后的图像虽然亮了,但全是噪点,反而更难看。

我个人的经验法则是:

  1. 先评估原始图像的SNR。如果低于15 dB,先做去噪再做增强。
  2. 增强时尽量用局部自适应方法,避免全局拉伸放大暗部噪声。
  3. 增强后如果噪声明显,可以用非局部均值去噪做后处理。

避坑指南:我曾经在SNR只有8 dB的图上直接用了CLAHE(对比度受限自适应直方图均衡化),结果暗部的噪声被放大到比信号还强,整张图像全是彩色噪点。后来我养成了一个习惯——增强前先看直方图和SNR,再决定策略。

2.5 本章小结

这一章我们聊了像素、直方图、RGB与HSV色彩空间、噪声模型和信噪比。这些概念看起来基础,但每一个都在低光照增强中扮演着关键角色。说白了,你后面调参时遇到的每一个问题,根源都能追溯到这些基础知识上。