前言:
-
为什么要知道数字图像处理?
基于现代计算机的快速发展,而计算机的处理也都是基于离散的,故对于图像处理,必须知道数字图像处理。 -
为什么要学习数字图像处理?
-* 你是否遇见过照片不清晰,曝光度不够,画面暗淡,色彩对比不明显? -
他能干什么?
-* 图像增强:
-* 图像复原:
-* 图像压缩:
-* 图像分割:
-* 图像描述:
等等。。。具体示例会在后续博客里详细介绍。
俗学不悟元中窍 丢却另寻哪得醒
尽己所能完善,学习!得其精髓!
1.图像的认识
1.1 什么是图像
“图”是物体反射或透射光的分布。“像”是人的视觉系统所接受的图在人脑中所形成的印象或认识。
图像就是所有具有视觉效果的画面,是各种图形和影像的总称。
图像是客观对象的一种相似性的、生动性的描述或写真,是人类社会活动中最常用的信息载体。或者说图像是客观对象的一种表示,它包含了被描述对象的有关信息。它是人们最主要的信息源。据统计,一个人获取的信息大约有75%来自视觉。
1.2 一幅图像的数学方法描述
I = f ( x , y , z , λ , t ) I = f(x,y,z,λ,t) I=f(x,y,z,λ,t)
其中 x 、 y 、 z x、y、z x、y、z是空间坐标, λ λ λ是波长, t t t是时间, I I I是光强度。
对静态图像, t t t为常数。对单色图像, λ λ λ为常数。对平面图像, z z z为常数。
对于静态平面单色图像,其数学表达式可以简化为: I = f ( x , y ) I = f(x,y) I=f(x,y)
人类的感知只限于电磁波谱的视觉波段,成像机器则可以覆盖几乎全部电磁波谱。
1.3 数字图像
分类:
- 模拟图像:空间和灰度都连续的图像,典型代表是由光学透镜系统获取的图像,如人物照片、景物照片、图形、X光照片等
- 数字图像:把模拟图像用数字表示出来,用数字表示的图像就是数字图像。
把模拟图像经过离散化处理得到数字图像的过程,叫图像的数字化,包括采样和量化两个过程。
-* 采样:在空间上把图像分割成一块块小区域(像素),每个像素都有一个二维坐标(整数)。采样越少,图像清晰度越低,类似于马赛克效应。
-* 量化:每个像素的亮度或灰度值被映射到相应的灰度级,每级灰度一般用一个整数来表示。一般用8bit表示灰度图像像素的灰度值,则量化灰度等级L=256,取值范围是0~255的整数,如此成为8bit量化。量化越少,图像的灰度值分割越少,图像对比度越明显,但是会减少图像的细节信息,故对于有大量细节的图像需要较多的灰度级。
模拟图像经采样与量化后可以用一个矩阵来表示:
f ( x , y ) = [ f ( 0 , 0 ) f ( 0 , 1 ) . . . f ( 0 , N − 1 ) f ( 1 , 0 ) f ( 1 , 1 ) . . . f ( 1 , N − 1 ) . . . . . . . . . . . . f ( M − 1 , 0 ) f ( M − 1 , 1 ) . . . f ( M − 1 , N − 1 ) ] f(x,y ) = \begin{bmatrix} f(0,0) & f(0,1) & ... & f(0,N-1) \\ f(1,0) & f(1,1) & ... & f(1,N-1) \\ ... & ... & ... & ... \\ f(M-1,0) & f(M-1,1) & ... & f(M-1,N-1) \end{bmatrix} f(x,y)=⎣⎢⎢⎡f(0,0)f(1,0)...f(M−1,0)f(0,1)f(1,1)...f(M−1,1)............f(0,N−1)f(1,N−1)...f(M−1,N−1)⎦⎥⎥⎤
f ( x , y ) f(x,y) f(x,y)被称为数字图像,矩阵中的每一个元素即为像素,元素的位置与像素点位置相对应,其值的大小是该像素的灰度值
1.4 数字图像的分类
- 灰度图像:灰度图像矩阵元素的取值范围通常为 [ 0 , 255 ] [0,255] [0,255],其数据类型一般为8位无符号整数,即256级灰度图像。“0”表示纯黑色,“255”表示纯白色,中间的数字从小到大表示由黑到白的过渡色。
- 二值图像:灰度值只由0、1两个值构成,“0”代表黑色,“1”代表白色。二值图像可以看成是灰度图像的一个特例。
- 彩色图像—>
-* RGB模型:大多数彩色可有适当选择的三种基色混合产生,这就是三基色原理。它分别用红(R)、绿(G)、蓝(B)三基色的组合来表示每个像素的颜色。每个颜色分量的数据类型一般为8位无符号整型。
-* CMYK模型:CMYK颜色模型包括青(cyan)、品红(magenta)、黄(yellow)和黑(black),为避免与蓝色混淆,黑色用K表示。青、品红、黄分别是红、绿、蓝三基色的互补色。彩色打印、印刷等应用领域采用打印墨水、彩色涂料的反射光来显现颜色,是一种减色方式。 彩色打印机和彩色印刷都是采用这个原理。由于彩色墨水和颜料的化学特性,用等量的三种基色得到的黑色不是真正的黑色,因此在印刷术中加入一种真正的黑色,所以通常把CMY模型写成CMYK。
-* HSI(HSV)模型:色调H是描述纯色的属性,如红色、绿、蓝等。饱和度S表示的是一种纯色被白光稀释的程度的度量。亮度I体现了无色的光强度的概念,是一个主观的描述。
-* 两个相似的概念:HSI和HSV空间。HSV里面的V指的是RGB里面的最大值, v = m a x ( r , g , b ) v = max(r,g,b) v=max(r,g,b);而HSI的I是平均值, I = ( r + g + b ) / 3 I = (r+g+b)/3 I=(r+g+b)/3。
2.像素间的基本关系
一幅图像 f ( x , y ) f(x,y) f(x,y)由基本单元像素组成,像素间存在着一定的联系,包括像素的邻域、邻接、连通和像素间的距离。一般地,当指定某个特定的像素时用小写字母(如 p p p)表示。而 x y xy xy轴的定义和增减参考上述矩阵!
2.1 邻域
邻域处理方法是图像增强和复原的核心
在一幅图像 f ( x , y ) f(x,y) f(x,y)中,一个坐标为 ( x , y ) (x,y) (x,y)的像素 p p p的邻近像素组成了该像素的邻域。根据邻近像素的不同定义,可得不同的邻域:
- 4-邻域
坐标为 ( x , y ) (x,y) (x,y)的像素 p p p有4个水平和垂直的相邻像素,坐标分别为: ( x − 1 , y ) (x-1,y) (x−1,y) ( x , y − 1 ) , ( x , y + 1 ) (x,y-1) ,(x,y+1) (x,y−1),(x,y+1) ( x + 1 , y ) (x+1,y) (x+1,y)这个像素集称为p的4邻域,用 N 4 ( p ) N_4(p) N4(p)表示,如下图所示:
- 对角邻域
坐标为 ( x , y ) (x,y) (x,y)的像素 p p p有4个对角方向相邻像素,坐标分别为: ( x − 1 , y − 1 ) , ( x − 1 , y + 1 ) (x-1,y-1),(x-1,y+1) (x−1,y−1),(x−1,y+1) ( x + 1 , y − 1 ) , ( x + 1 , y + 1 ) (x+1,y-1),(x+1,y+1) (x+1,y−1),(x+1,y+1)用 N D ( p ) N_D(p) ND(p)表示,如下图所示:
- 8-邻域
坐标为 ( x , y ) (x,y) (x,y)的像素 p p p有水平、垂直和对角的8个相邻像素,坐标分别为: ( x − 1 , y − 1 ) , ( x − 1 , y ) , ( x − 1 , y + 1 ) (x-1,y-1),(x-1,y),(x-1,y+1) (x−1,y−1),(x−1,y),(x−1,y+1) ( x , y − 1 ) , ( x , y + 1 ) (x,y-1),(x,y+1) (x,y−1),(x,y+1) ( x + 1 , y − 1 ) , ( x + 1 , y ) , ( x + 1 , y + 1 ) (x+1,y-1),(x+1,y),(x+1,y+1) (x+1,y−1),(x+1,y),(x+1,y+1)这个像素集称为 p p p的8邻域,用 N 8 ( p ) N_8(p) N8(p)表示,如下图所示:
那么可知: N 8 ( p ) = N 4 ( p ) ∪ N D ( p ) N_8(p)=N_4(p)∪N_D(p) N8(p)=N4(p)∪ND(p)
2.2 邻接
对于任意两个像素,若一个像素在另一个像素的邻域中,且它们的灰度值满足特定的相似准则(例如属于某一个灰度值集合),则称这两个像素是邻接的,有3种像素的邻接:
- 4-邻接
如果 q q q在 N 4 ( p ) N_4(p) N4(p)中,满足灰度值条件为集合 V V V,那么这两个像素 p p p和 q q q是4邻接。
例: V = { 1 } V=\{1\} V={1},且 p 、 q p、q p、q的灰度值都为1。
- 8-邻接:
如果 q q q在 N 8 ( p ) N_8(p) N8(p)中,满足灰度值条件为集合 V V V的两个像素 p p p和 q q q是8邻接的。
例: V = { 1 } V=\{1\} V={1},且 p 、 q p、q p、q的灰度值都为1。
- m m m-邻接:
灰度值满足集合 V V V的像素 p p p和 q q q,若符合下列两个条件之一:
-* a: q q q在 p p p的4邻域中;
-* b: q q q在 p p p的对角邻域中,并且 q q q的4邻域和 p p p的4邻域交集像素中没有任何灰度值属于 V V V。
则称 p 、 q p、q p、q两点是 m m m邻接。
例: V = { 1 } V=\{1\} V={1},且 p 、 q p、q p、q的灰度值都为1。
m m m-邻接的作用:消除8-邻接的二义性。
如何看?(采用一种邻接方式是不可更改的)①当使用8-邻接的时候,从 p p p到 q q q有两条通路:直达或从上面的1连通。这都是符合8-邻接的定义,从而产生二义性,这在图像的边缘检测里是很不希望的。②当使用 m m m-邻接的时候,从 p p p到 q q q仅有一条通路:因为 q q q和 p p p都在对方的对角邻域,触发b条件,但是它们4-邻域的交集像素中有一个1属于集合 V V V,而条件需要的是没有在交集 V V V里,故不符合b条件,那么这条路就不通。而 p p p到上面的1触发a条件成立,1又与 q q q达成a条件,故仅有一条通路,可消除8-邻域的二义性。
还有一个,可能会有人疑惑为什么 m m m-邻域里的a条件不是和4-邻域重合了吗?会不会a条件是多余的,或者4-邻域是不必要的?其实不是,因为:①通路的方式只有一种邻接方式,选了 m m m-邻域就不能再用4-邻域。② m m m-邻域包含a条件是必要的,不然无法达到取消8-邻域二义性的效果, m m m-邻域的主要作用就是消除8-邻域的二义性。
2.3 连通
设 p ( x , y ) p(x,y) p(x,y)与 q ( s , t ) q(s,t) q(s,t)之间存在的一条通路,由像素序列组成: ( x 0 , y 0 ) , ( x 1 , y 1 ) , ∧ , ( x n , y n ) (x_0,y_0),(x_1,y_1),∧,(x_n,y_n) (x0,y0),(x1,y1),∧,(xn,yn)
其中 ( x i , y i ) (x_i,y_i) (xi,yi)与 ( x i − 1 , y i − 1 ) ( 1 ≤ i ≤ n ) (x_{i-1},y_{i-1})(1 \leq i\leq n) (xi−1,yi−1)(1≤i≤n)相邻接。
( x , y ) = ( x 0 , y 0 ) , ( s , t ) = ( x n , y n ) (x,y)=(x_0,y_0),(s,t)=(x_n,y_n) (x,y)=(x0,y0),(s,t)=(xn,yn)
n n n称为通路的长度,根据邻接类型,分为:4-通路、8-通路和 m m m-通路。
如果 ( x 0 , y 0 ) = ( x n , y n ) (x_0,y_0)=(x_n,y_n) (x0,y0)=(xn,yn),则该通路是闭合通路。
若像素 p p p和 q q q存在一条通路,则称 p p p和 q q q是连通的,根据通路类型,分为4-连通、8-连通和 m m m-连通。
2.4 距离(范数定义)
对于像素 p ( x , y ) 、 q ( s , t ) p(x,y)、q(s,t) p(x,y)、q(s,t)和 r ( u , v ) r(u,v) r(u,v),当:
- a: D ( p , q ) ≥ 0 D(p,q)\geq 0 D(p,q)≥0,(当且仅当 p = q p=q p=q时等号成立);
- b: D ( p , q ) = D ( q , p ) D(p,q)=D(q,p) D(p,q)=D(q,p);
- c: D ( p , r ) ≤ D ( p , q ) + D ( q , r ) D(p,r)\leq D(p,q)+D(q,r) D(p,r)≤D(p,q)+D(q,r)
则称函数D为距离或度量函数,常见的距离函数D有欧式距离、城区距离、棋盘距离。
- 欧式距离
是范数为2的距离。
像素 p ( x , y ) p(x,y) p(x,y)和像素 q ( s , t ) q(s,t) q(s,t)之间的欧式距离为
D e ( p , q ) = ( x − s ) 2 + ( y − t ) 2 D_e(p,q)=\sqrt[]{(x-s)^2+(y-t)^2} De(p,q)=(x−s)2+(y−t)2
距离 p p p的欧式距离小于或等于某一值 R R R的像素都包含在以 p p p为圆心且半径为 R R R的圆内。 - 城区距离(曼哈顿距离)
是范数为1的距离。
定义如下:
D 4 ( p , q ) = ∣ x − s ∣ + ∣ y − t ∣ D_4(p,q)=|x-s|+|y-t| D4(p,q)=∣x−s∣+∣y−t∣
距 p p p的 D 4 D_4 D4距离小于或等于某一值 R R R的像素在以 p p p为中心的菱形区域内。例如当 R = 2 R=2 R=2时,菱形距离区域为:
上图的数字表示所在点像素到中心像素的距离。
- 棋盘距离
是范数为 ∞ ∞ ∞的距离。
定义如下:
D 8 ( p , q ) = m a x ( ∣ x − s ∣ , ∣ y − t ∣ ) D_8(p,q)=max(|x-s|,|y-t|) D8(p,q)=max(∣x−s∣,∣y−t∣)
距 p p p的 D 8 D_8 D8距离小于或等于某一值 R R R的像素,在以 p p p为中心的正方形区域内。例如当 R = 2 R=2 R=2时,棋盘距离区域为:
上图的数字表示所在点像素到中心像素的距离。
欧式距离给出的结果比较准确,但计算时要进行平方和开方运算,计算量大。城区距离和棋盘距离均为非欧式距离,计算量小,但有一定误差。