Richard Szeliski 《Computer Vision Algorithms and Applications》Second Edition 计算机视觉算法与应用 第二版

第三章 Image Processing

3.1 Point operators

点操作算子(Point operators)是图像处理转换中最简单的一种操作,其每个输出的像素值仅依赖于对应的输入像数值。例如调整图像亮度和对比度,以及颜色的纠正和转换。图1为一些局部图像处理操作。

Richard Szeliski 《Computer Vision Algorithms and Applications》Second Edition 计算机视觉算法与应用 第二版
图1:一些局部图像处理操作:(a)原始图像及其三色(每通道)直方图; (b)亮度增加(加性偏移量,b = 16); ©对比度增加(乘增益,a = 1.1); (d) gamma(部分)线性化(γ = 1.2);(e)全直方图均衡化;(f)局部直方图均衡化。

; 3.1.1 Pixel transforms

(A) 图像处理算子( image processing operator)
定义:图像处理算子是一个将输入的一张或多张图像产生一张输出图像的函数。
函数表达:
(1)连续域:g ( x ) = g ( f ( x ) ) g(x)=g(f(x))g (x )=g (f (x ))
其中x在函数的D维域内(通常图像为D = 2),函数f和g在一定范围内运行,该范围可以是标量或向量值,例如,对于彩色图像或二维运动。
(2)离散域:g ( i , j ) = g ( f ( i , j ) ) g(i,j)=g(f(i,j))g (i ,j )=g (f (i ,j ))
(B) 点操作算子( Point operators)
函数表达式:g ( x ) = a f ( x ) + b g(x)=af(x)+b g (x )=a f (x )+b a>0,b为常量,通常称为增益(gain)和偏置(bias)参数。有时改变这些参数可以改变图片的对比度和亮度,如图1中的b和c。
当然增益(gain)和偏置(bias)参数也可以是通过 空间变换的:g ( x ) = a ( x ) f ( x ) + b ( x ) g(x)=a(x)f(x)+b(x)g (x )=a (x )f (x )+b (x )例如当模拟摄影师用来选择性地使天空变暗的梯度密度滤光片时,或当模拟光学系统中的渐晕时。
以上两个乘法增益都是线性运算,因此遵循 叠加原理:h ( f 0 + f 1 ) = h ( f 0 ) + h ( f 1 ) h(f_0+f_1)=h(f_0)+h(f_1)h (f 0 ​+f 1 ​)=h (f 0 ​)+h (f 1 ​)
另外一个常用的二元(双输入)运算符是线性混合运算符:g ( x ) = ( 1 − α ) f 0 ( x ) + α f 1 ( x ) g(x)=(1-α)f_0(x)+αf_1(x)g (x )=(1 −α)f 0 ​(x )+αf 1 ​(x )通过使α值从0→1变化,该算子可用于在两幅图像或视频之间执行时间交叉溶解,就像在幻灯片放映和电影制作中看到的那样,或作为图像变形算法的组成部分。
在进一步对图像处理之前,经常应用于图像的一种使用频率很高的非线性变换是 伽马校正,它用于去除输入亮度和量化像素值之间的非线性映射。为了反演由传感器应用的伽马映射,我们可以使用:g ( x ) = [ f ( x ) ] 1 / γ g(x) = [f(x)]^{1/γ}g (x )=[f (x )]1 /γγ=2.2在多数相机里是合理的值。

3.1.2 颜色转换(Color transforms)

虽然彩色图像可以被视为任意向量值函数或独立波段的集合,但通常将它们视为与图像形成过程、传感器设计和人类的感知有联系的高度相关的信号。
如图1(b),通过向RGB三个通道添加一个常量值以增加图像的亮度,然而效果并不理想:不仅会增加每个像素的表观强度,还会影响像素的色调和饱和度。解决方法可以是先计算色度坐标或更简单的色比,然后再对亮度Y进行操作后,重新计算具有相同色调和饱和度的有效RGB图像。

3.1.3 合成与抠图(Compositing and matting)

定义:从原始图像中提取目标的过程称为抠图,而将其嵌入另外一张新的图像称为合成。

Richard Szeliski 《Computer Vision Algorithms and Applications》Second Edition 计算机视觉算法与应用 第二版
图2 图像抠图和合成: (a)源图像;(b)提取前景目标F;© alpha-matte α灰度图;(d)新合成图像C;

在这两个过程之间的中间代表的前景对象称之为:alpha-matte 彩色图,而且alpha-matte图在RGB的基础上增加了第四通道α,其描述每个像素处的不透明度(opacity)或分数覆盖的相对数量,如图2©和图3(b)。物体内部的像素是完全不透明的(α = 1),而物体外部的像素是透明的(α = 0)。物体边界上的像素在这两个极端之间平滑变化,这掩盖了仅使用二元不透明时出现的可感知的可见锯齿。
将在一张旧的图片(background)上合成一张新的图像(foreground)定义为over operator:
C = ( 1 − α ) B + α F C=(1-α)B+αF C =(1 −α)B +αF
该算子将背景图像B的影响减小一个因子(1−α),然后加入前景层F对应的颜色(和不透明度)值,如图3所示。

Richard Szeliski 《Computer Vision Algorithms and Applications》Second Edition 计算机视觉算法与应用 第二版
图3 合成方程C =(1−α)B + αf。
在许多情况下,用 预乘的形式表示前景色是很方便的,也就是说,直接存储 αF值。使用预乘后的RGBA表示的几个原因,包括模糊或重新采样alpha-matted图像的能力没有任何额外的复杂度(只是单独处理每个RGBA波段)。然而,当使用局部颜色一致性抠图时,使用 纯的未乘法前景颜色F,因为这些颜色在物体边缘附近保持恒定(或缓慢变化)。

; 3.1.4直方图均衡化(Histogram equalization)

首先,简单介绍一下何为 图像直方图:图像直方图(Image Histogram)是用以表示数字图像中亮度分布的直方图,标绘了图像中每个亮度值的像素数。这种直方图中,横坐标的左侧为纯黑、较暗的区域,而右侧为较亮、纯白的区域。因此一张较暗图片的直方图中的数据多集中于左侧和中间部分,而整体明亮、只有少量阴影的图像则相反。

直方图均衡化处理的”中心思想”是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的 均匀分布。直方图均衡化就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同。直方图均衡化就是把给定图像的直方图分布改变成”均匀”分布直方图分布

问题:虽然3.1.1节中描述的亮度和增益控制可以改善图像的外观,但我们如何自动确定它们的最佳值呢?

方法1:是查看图像中最暗和最亮的像素值,并将它们映射为纯黑和纯白。
方法2:另一种方法可能是在图像中找到平均值,将其推向中间灰色,并扩大范围,使其更紧密地填充可显示的值。

Richard Szeliski 《Computer Vision Algorithms and Applications》Second Edition 计算机视觉算法与应用 第二版
图4直方图分析与均衡化:(a)原始图像;(b)颜色通道和强度(亮度)直方图;©累积分布函数;(d)均衡(传递)函数;(e)全直方图均衡化;(f)局部直方图均衡化.

那么我们如何在图像中可视化亮度值集来测试这两种启发性的方法呢? 答案是绘制单个颜色通道和亮度值的直方图,如图4b。从这个分布中,我们可以计算出相关的统计数据,如最小、最大和平均强度值。请注意,图4a中的图像既有过多的暗值,也有过多的光值,但是中值大部分都没有填充。如果我们可以同时调亮一些暗值和调暗一些光值,同时仍然使用可用动态范围的全部范围,不是更好吗?

此问题比较合适的答案是执行直方图均衡化,即找到一个强度映射函数f ( I ) f(I)f (I ),使得到的直方图是平坦的。找到这种映射的技巧与人们从 概率密度函数中生成随机样本的技巧是一样的,即首先计算累积分布函数,如图4c。
可以将原始直方图h ( I ) h(I)h (I )看作考试后班级成绩的分布。我们如何将一个特定的年级映射到它相应的百分比,从而使75%范围内的学生的成绩优于3/4的同学?答案是对分布h ( I ) h(I)h (I )进行积分,得到累积分布c ( I ) c(I)c (I ):
c ( I ) = 1 / N ∑ h ( i ) = c ( I − 1 ) + 1 / N h ( I ) c(I) = 1/N∑h(i) = c(I − 1) + 1/N h(I)c (I )=1 /N ∑h (i )=c (I −1 )+1 /N h (I )
其中N是图像中的像素数或班级中的学生数。对于任何给定的等级或强度,我们可以查找其对应的百分位数c(I),并确定像素应该取的最终值。当使用8位像素值时,I和c轴将从[0,255]重新缩放。
图4e是对原始图像应用f ( I ) = c ( I ) f(I) = c(I)f (I )=c (I )【f ( I ) f(I)f (I )是强度映射函数】的结果。正如我们所看到的,结果直方图是平坦的;最终的图像也是如此(它是”平坦的”,缺乏对比,看起来很模糊)。一种补偿方法是只部分补偿直方图的不均匀性,例如, 使用映射函数f ( I ) = α c ( I ) + ( 1 − α ) I f(I) = αc(I) +(1−α)I f (I )=αc (I )+(1 −α)I ,这是累积分布函数和恒等变换(一条直线)之间的线性混合。正如你在图4f中看到的,得到的图像保持了更多的原始灰度分布,同时具有更吸引人的平衡。
直方图均衡化(或通常的图像增白)的另一个潜在问题是,黑暗区域的噪声会被放大,变得更明显。练习3.7提出了一些可能的方法来缓解这种情况,以及在原始图像中保持对比度和”穿孔”的替代技术。

局部自适应直方图均衡化(Locally adaptive histogram equalization)

虽然全局直方图均衡化可能是有用的,但对于某些图像,在不同的区域应用不同的均衡化可能更可取。以图5a中的图像为例,它的亮度值范围很广。如果我们将图像细分为M个×M像素块,并在每个子块中执行单独的直方图均衡化,而不是计算单个曲线,情况会如何?如图5b所示,得到的图像呈现出大量的块伪影,即块边界处的强度不连续性。

Richard Szeliski 《Computer Vision Algorithms and Applications》Second Edition 计算机视觉算法与应用 第二版
图5:局部自适应直方图均衡化:(a)原始图像;(b)块直方图均衡化;©全局部自适应均衡.

消除块伪像的一种方法是使用 移动窗口,即重新计算每个像素中心的每个M × M块的直方图。这个过程可能非常慢(每个像素M 2 M^2 M 2个操作),尽管通过聪明的编程,只有进入和离开块的像素的直方图条目(在整个图像的光栅扫描中)需要更新。注意,这个运算是非线性邻域运算的一个例子,我们将在第3.3.1节详细讨论。

  • 知识盲区

一种更有效的方法是像以前一样 计算非重叠的基于块的均衡函数,但在块之间移动时平滑地插值传递函数。这种技术被称为自适应直方图均衡化(AHE),其对比度受限(增益受限)版本被称为CLAHE。给定像素(i, j)的加权函数可以计算为像素在块内水平和垂直位置(s, t)的函数,如图6a所示。混合四个查找函数,成为一个双线性混合函数:f s , t ( I ) = ( 1 − s ) ( 1 − t ) f 00 ( I ) + s ( 1 − t ) f 10 ( I ) + t ( 1 − s ) f 01 ( I ) + s t f 11 ( I ) f_{s,t} (I) = (1-s)(1-t)f_{00}(I)+s(1−t)f_{10}(I)+t(1−s)f_{01}(I)+stf_{11}(I)f s ,t ​(I )=(1 −s )(1 −t )f 0 0 ​(I )+s (1 −t )f 1 0 ​(I )+t (1 −s )f 0 1 ​(I )+s t f 1 1 ​(I )

Richard Szeliski 《Computer Vision Algorithms and Applications》Second Edition 计算机视觉算法与应用 第二版
图6:使用相对(s, t)坐标进行局部直方图插值:(a)基于块的直方图,块中心以圆表示;(b)基于角点的”样条”直方图。像素位于网格交叉点上。使用计算的(s, t)值从四个相邻的查找表(灰色箭头)中插值黑色正方形像素的传递函数。块边界显示为虚线。
值得注意的是,我们可以通过四个相邻的查找函数来混合给定像素的映射结果,而不是混合每个输出像素的四个查找表(这将非常慢)。
该算法的一个变体是将查找函数放置在每个M×M块的角上(见图6b和课后练习题3.8)。除了混合四个查找以计算最终值外,我们还可以在直方图累积阶段将每个输入像素分布到四个相邻的查找函数中(请注意,图6b中的灰色箭头指向两个方向),例如:

h k , l ( I ( i , j ) ) + = w ( i , j , k , l ) h_{k,l}(I(i,j))+=w(i,j,k,l)h k ,l ​(I (i ,j ))+=w (i ,j ,k ,l )
w ( i , j , k , l ) w(i,j,k,l)w (i ,j ,k ,l )表示像素( i , j ) (i,j)(i ,j )和查找表( k , l ) (k,l)(k ,l )之间的双线性加权函数。这是一个软(soft)直方图的例子,它被广泛用于各种其他应用,包括SIFT特征描述符(章节7.1.3)和词汇树的构造(章节7.1.4)。

; 3.1.5 应用:色调调整(Tonal adjustment)

对像素点进行图像处理的最广泛应用之一是对照片的对比度或色调进行处理,使它们看起来更有吸引力或更容易理解。您可以通过打开任何照片处理工具并尝试各种对比度、亮度和颜色处理选项来获得良好的操作范围,如图1和4所示。
课后练习3.1、3.6和3.7让你实现了其中的一些操作,从而熟悉基本的图像处理操作符。更复杂的音调调整技术在关于高动态范围色调映射的章节(章节10.2.1)中进行了描述。

Original: https://blog.csdn.net/kkjz627/article/details/122987223
Author: kkjz627
Title: Richard Szeliski 《Computer Vision Algorithms and Applications》Second Edition 计算机视觉算法与应用 第二版

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/642000/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球