数字图像处理

数字图像基础

视觉感知要素

人的主观亮度是进入人眼的光线强度的对数函数,并且在暗光环境和亮光环境下,该函数有所不同;两个函数有交叉的部分。当人眼从一个光线环境切换到另外一个光线环境时,眼睛需要有一个适应的过程,此时人眼会调整自身的光线灵敏度,来完成这种适应;

韦伯比:光线变化量与变化前的光线强度的比值 delta I / I;在低照明环境,韦伯比比较大(说明此时人眼较不敏感);在高照明环境下,韦伯比降低(说明此时人眼对光线变化变得更加敏感了);

在背景照明(即环境光线)恒定时,人眼可辨别的亮度级别是有限的(12-24级左右),但是当人眼开始移动时,背景照明会跟着变化,因此导致人眼能够辨别很大的亮度范围;

当背景照明变化时,由于人眼会重新适应和调整自己,因此这时在变化的边缘区域,会出现有趣的现象,此时人眼的感知不是线性的,而是会出现小范围的波动(上冲和下冲现象,马赫带效应);

人眼对某个区域的亮度判断,并不完全取决于该区域的光线强度,还跟该区域所处的背景强相关;如果背景是暗的,则物体看起来更白;如果背景是亮的,则物体看起来变暗;

光和电磁波谱

光是一种电磁波,不同的电磁波有不同的波长和频率,频率越高的电磁波,其携带的能量越大,此时波长也相应的越短;人眼可感知的光的波长范围大概在 0.43 - 0.79 um 之间;

除了频率(波长)外,有三个指标可用来描述光的属性:

  • 发光强度:光源发出的能量总量,单位瓦特 W;
  • 光通量:观察者从光源感受到的能量,单位流明数 lm;
  • 亮度:观察者对感知到的光的主观描绘参数,个体之间存在差异,因此不可度量(大致相当于强度描述);

图像感知和获取

基本原理:使用传感器,将光的能量转换成电压变化的波形,再解析波形成为数字信号;

i 表示入射分量,表示环境光源;r 表示反射分量,表示目标物体的反射光,取值范围为 0-1,表示对环境光源的全反射到全吸收之间的范围;公式中的取值范围是理论上的,现实生活中不可能存在无穷大的光源,不同环境中的光源强度总是在有限的范围内;

图像取样和量化

由于传感器输出的是连续的电压波形,因此需要进一步做取样和量化动作,以便将这些波形数据数字化;

对比度:照片中最高和最低灰度级间的灰度差;

最大可度量灰度和最小可度量灰度构成了图片的动态范围;最小可度量灰度跟噪声有关;

分辩率:单位距离的线或点的总数量;印刷行业一般用点数,即 dpi(dot per inch);

彩色图像处理

传感器有很多种类型,不同类型的感光特性不同;同一感光材料,对不同波长的敏感度不同;波长越长的电磁波,进入材料越深,因此有更大的可能性被吸收,导致最终结果是光电转换率更低;

不同颜色的电磁波,在感光材料上面的光电转换效率:

原始的传感器数据是马赛克形式的,因此首先需要进行插值计算,去除马赛克,得到每一个像素点的三通道值;有很多种去除马赛克的算法,最简单的办法是取邻近点的平均值,缺点是物体边缘会不够锐利;更好的算法会稍微复杂一点,例如考虑变化幅度,当变化幅度超过临界点时,可以判断该点属于物体的边缘,因此只取纵向或横向的平均值(有些算法还会考虑该点所处的位置,例如是角点、边点、还是中间点等情况);

饱和度:指相对的纯净度,即一种颜色混合白光的数量;纯色是全饱和的,加了白色后变成次饱和的;饱和度和所加的白光数量成反比;

曝光:场景中某些物体表面由于反射的光线少,可能很暗,因此需要延长传感器接收光线的时间,这样才能收集到足够多的信息,得以看清该物体的细节;但是延长传感器的工作时间是一把双刃剑,因为此时画面中也有可能存在比较明亮的物体(反射光线多),如果延长传感器工作的时间,则会导致明亮物体区域接收到过多的光线值,如果该值超过了上限,则会导致该明亮物体最终呈现为白色,丢失了细节;因此,选择合适的曝光时间,尽量多的保留画面中核心区域的细节,是一个不可缺少的环节;

白平衡:环境光源是多种多样的,不同的环境光源,其不同波长的电磁波组成不同,因此在该环境中,物体会出现色差;有时这种色差正是我们所需要的,但有时候则不是我们想要的。白平衡的目标,就是换出环境光源各部分光线的构成比例,并加予干预调节,让其回归到某个标准光源环境的光线比例,从而让画面中的物体,能够展示在标准光源环境下的色彩;通常白平衡并没有直接调整传感器的模拟信号值,而是调整模拟信号转换后的数字信号值,对每个通道使用不同系数进行调整;

白天日光环境下 RGB 光波的比例坐标:

RIMM RGB: Reference Input/Output Medium Metric RGB

白平衡后的数字信号,到最终显示结果之间,有三个动作需要做:

  • 将数字信号转成颜色模型;
  • 色阶调整(因为需要考虑最终结果的观看环境跟拍摄环境不同,例如图片观看多数在室内,而拍摄通常在室外)
  • 转换成显示设备的颜色模型;

不同的数码相机,这三个步骤有不同的处理算法,并且它们之间不一定有明确的分界线;

传感器收集到的原始数据,需要转换为颜色值,此时需要采用某种能够表示色彩的模型;理想情况下,针对不同的环境光线,相机应使用不同的计算公式,计算出对应的色值;但在实际应用中,该步骤一般直接使用白平衡补偿后的数据;虽然这种做法可以让中性色物体恢复到正常的色值,但其他颜色则无法还原准确;理论上相机系统可以根据白平衡参数,计算出光源类型,然后再调用最合适的色彩计算模型进行色值计算;

由于人眼对颜色的感知跟人眼所处的环境光线有直接关系,因此在计算色值前,需要考虑最终的图片将在何种光线环境下被查看,并基于该查看环境,来计算合适的色值;通常情况下,会假设存在一个统一的查看环境,将基于该环境进行计算;但有时对于专业摄影场景,则省去该计算步骤,保留原值,让摄像者在后期进行自定义处理;

相机所采用的颜色模型可以是设备无关的,例如 CIEXYZ 或者 CIELab,但也可以是设备相关的,例如 RIMM RGB 模型;

经过白平衡计算后的色值,需要进一步考虑曝光参数,计算出曝光校正后的色值,

非纯性的曝光数据 -> 查 LUT 表转成纯性的曝光数据 -> 颜色校正Matrix,得到 XYZ 色值 -> RIMM 转换Matrix,得到线性 RIMM RGB 色值 -> 查 LUT 表,转成非线性的 RIMM RGB 值;在实际计算时,中间过程的两个矩阵可以合并成一个矩阵;

然后再按以下公式转成非线性的 RGB;

色阶调整

照片的观看环境通常与拍摄环境不同,前者通常在室内(光线较暗),拍摄则通常在室外(光线较亮),因此在处理照片数据时,需要有一个色阶调整的环节,通过增加对比度,让照片通常在较暗的环境看得清楚;

大脑在观看照片时,存在一个心理学现象,即会强化某种现象,例如脑海中的草的颜色,会比现实中的更加鲜艳(纯度更高);

照片的动态范围,通常要比实际生活中的更小一些,因此在做照片的处理时,需要丢弃一些动态范围信息(即对信息进行压缩);

RIMM 与 ROMM 的映射图

输出模型

照片最终要在某种显示设备上进行展示,因此最后一个环节需要将数据转成目标设备的颜色模型,目前国际标准是采用 sRGB 模型。这个模型的优点是通用性很强,几乎所有的显示设备都支持。缺点是它显示的颜色范围较小,因此可能无法满足一些高端显示设备的要求;如果已知目标设备,则此步可以将照片直接转成目标设备所使用的颜色模型,而不是通过 sRGB;

第一步:将非线性的 ROMM RGB 值转成线性的;

第二步:将线性 ROMM RGB 转在 D50 XYZ 值;

第三步:将 D50 XYZ 转成 D65 XYZ

第四步:将 D65 XYZ 转成线性的 RGB 值

第五步:将线性 RGB 转成非线性的 RGB

注:其中第2步到第4步的三个矩阵运算,可以合并成一个矩阵

因此,整个计算过程可以简化为 LUT - Matrix - LUT 三部曲;


数字图像处理
https://ccw1078.github.io/2021/10/20/数字图像处理/
作者
ccw
发布于
2021年10月20日
许可协议