全面了解数字图像处理的研究领域,掌握基本原理,具有一定的实践能力。

Introduction

What’s Digital images?

Image

  • 2-D function f(x,y)f(x,y)
    x,yx,y为空间坐标
    振幅ff称为强度intensity或灰度grey level
  • intensity f(x,y)f(x,y)是一个有界的值
    x,y,f(x,y)x,y,f(x,y)是有限离散的值。图像就由有限个元素组成,这些元素一般称为像素(pixel)

我们可以将图像视作一个函数ff,对于给定的(x,y)(x,y),输出相应的灰度值。
而常规彩色图像可以是由RGB三个通道的函数堆叠而成的“vector-valued”函数:

f(x,y)=[r(x,y)g(x,y)b(x,y)]f(x,y)= \begin{bmatrix} r(x,y)\\ g(x,y)\\ b(x,y) \end{bmatrix}

图像展示的三种方式:
dip1
依我之见,离散点集中的点对应的位置x,yx,y,就是覆盖区域和矩阵表达的对应1*1正方形区域的中心点。不妨将该正方形区域称为单位区域。矩阵表达单位区域的值实际上就是x,yx,y对应的灰度值f(x,y)f(x,y)

颜色模型

RGB模型

一般常用三原色(红色、绿色、蓝色)来产生彩色图像,所以彩色图像一般表示为

fc(x,y)=(fr(x,y),fg(x,y),fb(x,y))f_c(x,y)=(f_r(x,y),f_g(x,y),f_b(x,y))

其中fc(x,y)f_c(x,y)(r,g,b)(r,g,b)表示,r,g,br,g,b分别是三个灰度图像的灰度值。注意r,g,br,g,b均为255时,表示为白色;均为0时,则表示为黑色。

Image in Memory

  1. 交叉存贮

[B,G,R] [B,G,R] ... [B,G,R][B,G,R]\ [B,G,R]\ ...\ [B,G,R]

  1. 顺序存贮

[B] [B] [B] [B] ... [B][G] [G] [G] [G] ... [G][R] [R] [R] [R] ... [R][B]\ [B]\ [B]\ [B]\ ...\ [B]\\ [G]\ [G]\ [G]\ [G]\ ...\ [G]\\ [R]\ [R]\ [R]\ [R]\ ...\ [R]

例题:一个16位整数型3通道图像,交叉存贮,行宽为m,其中一个像素地址为P,写出其上、下、左、右像素的地址。
由于是16位整数型,则每个通道要存储为16/8=2Byte,由于交叉存贮,3个通道总计为2*3=6Byte

上:Pm下:P+m左:P6右:P+6左上:Pm6右上:Pm+6左下:P+m6右下:P+m+6上:P-m\\ 下:P+m\\ 左:P-6\\ 右:P+6\\ 左上:P-m-6\\ 右上:P-m+6\\ 左下:P+m-6\\ 右下:P+m+6

基于RGB三基色颜色系统有Phong模型(简单光照明模型)

CMY模型

即青、品红、黄,也被称为减色模型,即从白色的背景中减去某种颜色而获得新的颜色,如光经过品红色物体的反射和透射后,光谱中的绿色成分将被吸收和减去。颜色的补色即为从白色中减去这种颜色后所得的颜色。CMY模型的三基色与RGB模型的三基色互为补色。青色对应红色,品红对应绿色,黄色对应蓝色,公式化如下:

  • 青(Cyan) = W-R
  • 品红(Magenta) = W-G
  • 黄(Yellow) = W-B
    其中W代表白色。

HSV模型

HSV模型用极坐标来定义颜色空间,它是一个倒立的单位正六棱锥(近似认为倒圆锥体?)。H即hue,表示色彩,S即saturation,代表饱和度,而V即Value,表示明度。
圆锥的顶面对应于V=1,代表明度最高,亮色,底部顶点V=0,表示最暗,色彩H由绕V轴的旋转角给定,其中红色对应于0°,绿色对应于120°,蓝色对应240°。在HSV颜色模型中,每一种颜色和它的补色相差180°。由于饱和度S取值从0到1,则圆锥顶面的半径为1。
在圆锥的原点处,即底部顶点,V=0,H和S无定义,代表黑色。圆锥的顶面中心处S=0,V=1,H无定义,代表白色。而圆锥顶面圆周上的颜色,V=1,S=1,为纯色。
降低饱和度S对应于在当前颜色中加入白色。
降低明度则对应于当前颜色中加入黑色。
类似的存在HSL模型,分别代表色调、饱和度、亮度

CIELAB色彩空间

写为Lab,L代表感知的亮度,a和b代表人类视觉四种独特颜色:红色、绿色、蓝色和黄色。L范围为0~100,对应黑色~白色,a从负值~正值,对应绿色~红色/品红,b从负值~正值,对应蓝色~黄色。

YUV模型

亮度信号Y,和两个色度信号(类似LAB)
YUV和RGB的转化如下:
Y = 0.299R+0.587G+0.114B
U = -0.1687R -0.3313G+0.5B + 128
V = 0.5R-0.4187G-0.0813B+128
R = Y+1.402(V-128)
G = Y-0.34414(U-128)-0.71414(V-128)
B = Y+1.772(U-128)

YCbCr模型

Y =0.299R+0.587G+0.114B
Cb =0.564(B-Y)
Cr =0.713(R-Y)
R =Y+1.402Cr
G =Y-0.344Cb-0.714Cr
B =Y+1.772Cb

Fundamentals

人眼的视觉原理与特征

人眼就是一个摄像机,物体在视网膜上的成像均为倒影。同时人眼具备一系列的特性,比如:

  • 人眼对光亮度的感受与光线强度成对数关系
  • 人眼对光线有很强的环境适应能力
  • 马赫带现象:在亮度变化的边缘区域,亮的部分看起来更亮,暗的部分看起来更暗
  • 前景与背景的相对性
  • 整体性:会构造主观轮廓
  • 封闭性:主动补充不完整部分
  • 错觉:对长度、平行的感知

图像获取及量化

DPI:Dot per inch
PPI: Pixel per inch
Digital Image的形成需要经历采样(Sampling)和量化(Quantization)两个过程
我们的输入是连续的模拟图像,用一个二维数组f(x,y)f(x,y)表示,x,y,f(x,y)x,y,f(x,y)的值均为任意实数。
采样:将连续的坐标值离散化,
量化:将连续的振幅(f(x,y)f(x,y))离散化
经历了采样和量化后,连续的模拟图像被转化为了数字化的图像,在计算机中表示为一个二维矩阵,矩阵的元素值均为整数。
而假设该图像的灰度级L=2kL=2^k,图像的高度和宽度分别为MMNN,则存储该图像所需的位数b=M×N×kb=M\times N\times k

对于采样,空间采样决定了图像的分辨率,采样越精细,图像的像素越多,细节也就越精细
对于量化,量化决定了intensity的范围,决定了平滑的程度,更精细的量化有助于防止虚假轮廓,而粗量化一般用于压缩图像。

图像格式

常见的一般有bmp、jpg、png、gif
根据数据的特点,一般图像文件分为以下两类:

  1. Bitmap/Raster 图像文件形式 (位图)
  2. Vector 图像文件形式 (矢量图)

Raster Image Formats(RIFs),即栅格图像格式,通常用于存储和处理位图图像,由像素组成,每个像素有特定的颜色信息。bmp、jpg、png、gif等均为此格式
至于Vector Image存储的实际上是数学中数据的实际向量,一般用于描述线、弧、圆等图形结构

Image Space

通常描述像素,我们用(x,y,R,G,B)(x,y,R,G,B)进行描述,其中x,yx,y体现了像素中心点的位置,R,G,BR,G,B体现了像素的颜色。

根据上述描述,我们就有了对图像基本的处理操作,即针对像素的空间位置进行操作,作几何变换,抑或是对像素的颜色作代数运算,改变颜色等。

代数运算

在数字图像处理中,代数运算,我们定义为对图像像素几何位置不发生变化,对图像灰度级的加减乘除运算。也就是对两幅输入图像进行逐像素的加减乘除计算而得到输出图像的运算。

Alpha Blending

Alpha Blending(阿尔法混合),一种将图像与背景结合的过程,结合后可以产生部分透明或全透明的视觉效果。Alpha通道的值通常介于0~1之间,0表示完全透明,1表示完全不透明,给定前景图像F的透明度值为α\alpha,记背景图像为B,F,B代表它们的RGB通道矩阵,那么合成图像C=αF+(1α)BC=\alpha F+(1-\alpha)B
通常应用于图像抠图(Image Matting)

背景相减

实例如下:
dip
记录当前帧II,背景B,过程如下:

I(x,y)=(r,g,b)B(x,y)=(r,g,b)Diff(x,y)=I(x,y)B(x,y)2\begin{align} &I(x,y)=(r,g,b)\\ &B(x,y)=(r,g,b)\\ &Diff(x,y)=||I(x,y)-B(x,y)||^2 \end{align}

给定预先设定的门槛值TT

Rn(x,y)={255,Dn(x,y)>T0,elseR_n(x,y)= \begin{cases} 255,&D_n(x,y)>T\\ 0,&else \end{cases}

根据T的值可以得到如下结果:
dip3
减运算还可以应用在序列图像求运动目标
除此之外还有乘运算、异或运算、与运算等

Template Matching

模板匹配是一种图像处理技术,用于在一幅图像中寻找与模板图像相似的区域。基本思路是通过滑动模块图像,在目标图像上逐个位置进行比较,计算每个位置的相似度或差异度,以找到最佳匹配的位置。
常见相似度匹配计算:
考虑计算匹配区域(x,y)(x,y),考虑模板区域(x,y)(x\prime,y\prime)
平方差匹配:

R(x,y)=x,y(T(x,y)I(x+x,y+y))2R(x,y)=\sum_{x\prime,y\prime}(T(x\prime,y\prime)-I(x+x\prime,y+y\prime))^2

归一化平方差匹配:

R(x,y)=x,y(T(x,y)I(x+x,y+y))2x,yT(x,y)2x,yI(x+x,y+y)2R(x,y)=\frac{\sum_{x\prime,y\prime}(T(x\prime,y\prime)-I(x+x\prime,y+y\prime))^2}{\sqrt{\sum_{x\prime,y\prime}T(x\prime,y\prime)^2\cdot\sum_{x\prime,y\prime}I(x+x\prime,y+y\prime)^2}}

相关匹配:

R(x,y)=x,y(T(x,y)I(x+x,y+y))R(x,y)=\sum_{x\prime,y\prime}(T(x\prime,y\prime)\cdot I(x+x\prime,y+y\prime))

归一化相关匹配:

R(x,y)=x,y(T(x,y)I(x+x,y+y))x,yT(x,y)2x,yI(x+x,y+y)2R(x,y)=\frac{\sum_{x\prime,y\prime}(T(x\prime,y\prime)\cdot I(x+x\prime,y+y\prime))}{\sqrt{\sum_{x\prime,y\prime}T(x\prime,y\prime)^2\cdot\sum_{x\prime,y\prime}I(x+x\prime,y+y\prime)^2}}

疑问:为什么归一化平方差除以的分母是这个式子?

几何操作

通过图像像素位置的变换,运算后,直接确定该像素灰度的运算。与代数运算不同,几何运算可改变图像中各物体之间的空间关系。
几何运算可看成是将各物体在图像内移动,它需要两个独立的算法:

  • 空间变换:用它来描述每个像素如何从初始位置移动到目标位置
  • 灰度级插值的算法:因为,一般情况下,灰度值仅仅在整数位置处被定义。而目标输出图像的一个像素的坐标往往会映射到原图像中非整数坐标中,即映射到原图像中的几个像素之间的位置

所以我们有了重采样:基于邻近像素的值,计算非整数位置上的颜色值

有以下三种方法:

  • 最近邻
  • 双线性插值
  • 双三次插值