一幅图像可以定义为一个二维函数 f ( x , y ) f(x,y) f(x,y),其中 x x x和 y y y是空间/平面坐标,而在任何一对空间坐标 ( x , y ) (x,y) (x,y)处的幅值 f f f称为图像在该点处的强度或灰度。彩色图像是由三个二维灰度图像 f ( x , y ) f(x,y) f(x,y)组成,三个通道分别是RGB或HSV。一般来讲,对图像进行处理的主要目的有三个方面:
- 改善图像的质量。比如,进行图像的亮度、彩色变换,增强、抑制某些成分,对图像进行几何变换等。
- 提取图像中所包含的某些特征或特殊信息。提取的特征可以包括很多方面,如频域特征、灰度或颜色特征、边界特征、区域特征、纹理特征、形状特征、拓扑特征和关系结构等,这些被提取的特征往往为计算机分析图像提供便利。
- 便于图像的存储和传输。比如图像数据的变换、编码和压缩,为了解决编码冗余、空间冗余和时间冗余。
基础概念
在图像空间域上的操作是直接对于图像像素的运算,通用表达式为: g ( x , y ) = T [ f ( x , y ) ] g(x,y)=T[f(x,y)] g(x,y)=T[f(x,y)], g ( x , y ) g(x,y) g(x,y)为输入图像经过处理得到的输出图像, T [ ⋅ ] T[\cdot] T[⋅]是在点 ( x , y ) (x,y) (x,y)的邻域上定义的一种算子。像素邻域有三种类型:四邻域,位于坐标 ( x , y ) (x,y) (x,y)的像素点 P P P有水平和垂直的四个相邻像素,表示为 N 4 ( P ) N_4(P) N4(P);对角邻域,位于坐标 ( x , y ) (x,y) (x,y)的像素点 P P P在对角上的四个相邻像素,表示为 N D ( P ) N_D(P) ND(P);八邻域,为 N 4 ( P ) N_4(P) N4(P)与 N D ( P ) N_D(P) ND(P)点的集合,表示为 N 8 ( P ) N_8(P) N8(P)。如下图所示:
三种距离度量如下:
对像素的基本操作如下图所示,邻域原点依次从一个像素向另一个像素移动,对邻域内的像素应用算子 T T T,并在该位置产生输出。一般从输入图像的左上角开始,以水平扫描的方式逐像素处理,每次一行。当该邻域原点位于图像边界上时,部分邻域将位于图像的外部,此时可以在用 T T T 做指定计算时忽略外侧邻点,或者用0/其他指定的灰度值填充图像边缘。
![](https://i-blog.csdnimg.cn/blog_migrate/bff1cf2a33a31a1d369907c4e01951cb.png)
考虑一种特殊的情况,即最小邻域1×1时, g ( x , y ) g(x,y) g(x,y)仅取决于每一个 ( x , y ) (x,y) (x,y)处的 f f f值,这时的 T T T 则成为一个灰度级的映射函数。若 ( x , y ) (x,y) (x,y)处变换前的灰度为 r r r,变换后的灰度为s,则根据不同的变换函数,如线性函数、对数函数、幂律函数、分段线性函数等,可以完成图像灰度级的扩展/压缩,进行对比度拉伸、阈值化处理等图像增强技术。
平滑空间滤波
滤波主要通过一个空间滤波器(或称空间掩模、核、模板和窗口)直接作用于图像本身实现的,空间滤波器由一个邻域及对该邻域包围的图像像素执行的预定义操作组成。滤波器的中心访问输入图像的每个像素,产生的新像素坐标等于邻域中心的坐标,新像素的值是滤波操作的结果。平滑滤波器用于模糊处理和降低噪声。模糊处理经常用于预处理任务中,例如在大目标提取之前去除图像中的一些琐碎细节,以及桥接直线或曲线的缝隙。通过线性滤波和非线性滤波模糊处理,可以降低噪声。
- 均值滤波:将中心像素的邻域内的每个像素值用平均像素值替换,这种处理结果降低了图像灰度的尖锐变化,由于典型的随机噪声由灰度级的急剧变化组成,因此可以降低噪声。但是,对噪声图有特别大的孤立点时非常敏感,即使有极少数点存在较大差异也会导致平均值的明显波动,而下面的中值滤波可以避免这点影响。如下图所示,每个模板前面的乘积为1除以所有系数和。
- 中值滤波:将中心像素的邻域内的每个像素值用中间像素值替换,对处理椒盐噪声非常有效。然而除了噪声,图像边缘也是由图像灰度尖锐变化带来的特性,所以平滑滤波也会存在边缘模糊的负面效应,但是同样尺寸的中值滤波器比均值滤波器的模糊程度低。滤波器随着核大小逐渐变大,会让图像变得更加模糊。3×3的中值滤波器可以表示为: g ( x , y ) = M e d i a n ( f 1 , f 2 , f 3 , f 4 , f 5 , f 6 , f 7 , f 8 , f 9 ) g(x,y) = Median(f_1,f_2,f_3,f_4,f_5,f_6,f_7,f_8,f_9) g(x,y)=