文章目录
基本概念
- 图像增强:使图像更适合于特定应用的图像处理技术
- 不存在对任何图像都通用的增强理论
图像增强分类
-
空间域图像增强
-
空间域:图像平面本身
-
表示为: g ( x , y ) = T [ f ( x , y ) ] g(x,y)=T[f(x,y)] g(x,y)=T[f(x,y)]
T一般表示f在像素(x,y)邻域的一种操作,T有时也表示图像集(图像算数/逻辑操作增强)。
-
主要以图像像素直接处理为基础
-
空间域图像增强分为两大类:
-
点运算:基本灰度变换,直方图处理
算术/逻辑操作增强属于多图像集点运算
- 灰度变换是对图像对比度进行处理的方法,任何一个像素变换后的值s,只与该像素变换前的值r相关,即: s = T ( r ) s=T(r) s=T(r)
- 灰度级变换函数的三种类型
- 线性(正比或反比)
- 对数(对数或反对数)
- 幂次(n次幂或n次方根)
-
邻域运算:平滑空间滤波器,锐化(边缘)空间滤波器
- 邻域一般定义为以某像素为中心的二维阵列,一般取3×3,当邻域为1×1的运算,称为点运算,其余称为邻域运算。
-
-
-
频率域图像增强
- 修改图像的傅里叶变换
基本灰度变换
图像反转
- 灰度级范围为[0, L-1]的图像,反转变换为 s = L − 1 − r s=L-1-r s=L−1−r
- 适合增强嵌入于图像暗色区域的白色细节,特别是当黑色面积占主导地位
对数变换
- 灰度级范围为[0, L-1]的图像,对数变换为 s = c l o g ( 1 + r ) s=clog(1+r) s=clog(1+r)
- 使窄带低灰度输入图像值映射为一宽带输出值
幂次变换
- 灰度级范围为[0, L-1]的图像,幂次变换为 s = c r γ s=cr^\gamma s=crγ
- 幂次变换也叫伽马矫正,是一种更加灵活的对比度增强方法
- 幂次变换对图像偏亮和偏暗的图像都可以进行增强
分段线性变换函数
- 由多个折线组成
- 按需要,将集中在某些段的对比度增强
算数/逻辑操作
图像逻辑运算
图像逻辑运算指对两幅输入图像,每对点(像素)进行逻辑处理(按位求与、按位求或、输出最大值、按位求异或、相加求模等),最终得到一幅新的输出图像的运算。
- 与运算: g ( x , y ) = a = A N D [ f ( x , y ) , h ( x , y ) ] g(x,y)=a=AND[f(x,y),\ h(x,y)] g(x,y)=a=AND[f(x,y), h(x,y)]
- 或运算: g ( x , y ) = a = O R [ f ( x , y ) , h ( x , y ) ] g(x,y)=a=OR[f(x,y),\ h(x,y)] g(x,y)=a=OR[f(x,y), h(x,y)]
- 求最大值运算: g ( x , y ) = a = M A X [ f ( x , y ) , h ( x , y ) ] g(x,y)=a=MAX[f(x,y),\ h(x,y)] g(x,y)=a=MAX[f(x,y), h(x,y)]
- 异或运算: g ( x , y ) = a = X O R [ f ( x , y ) , h ( x , y ) ] g(x,y)=a=XOR[f(x,y),\ h(x,y)] g(x,y)=a=XOR[f(x,y), h(x,y)]
- 求模运算: g ( x , y ) = a = [ f ( x , y ) + 128 ] m o d 256 g(x,y)=a=[f(x,y)+128]\ mod\ 256 g(x,y)=a=[f(x,y)+128] mod 256
图像算术运算
图像算术运算指两幅输入图像进行点对点的加、减、乘、除计算而得到输出图像的运算。
- 图像相加运算: g ( x , y ) = f ( x , y ) + h ( x , y ) g(x,y)=f(x,y)+h(x,y) g(x,y)=f(x,y)+h(x,y)
- 图像相减运算: g ( x , y ) = f ( x , y ) − h ( x , y ) g(x,y)=f(x,y)-h(x,y) g(x,y)=f(x,y)−h(x,y)
- 图像相乘运算: g ( x , y ) = f ( x , y ) × h ( x , y ) g(x,y)=f(x,y)×h(x,y) g(x,y)=f(x,y)×h(x,y)
- 图像相除运算: g ( x , y ) = f ( x , y ) / h ( x , y ) g(x,y)=f(x,y)/h(x,y) g(x,y)=f(x,y)/h(x,y)
图像减运算
-
减去背景噪声
当一光学系统存在背景噪声时,可以将由该光学系统拍摄的相片与背景相处相减,除去背景噪声(缓慢变化的加性非随机噪声)
-
减去背景
当只需要观察前景图像时,将背景图像减去
-
运动检测
当一场景有运动物体时,可以通过与没有任何运动物体时拍摄下来的照片相减,检测出运动的物体
将时间较近的两幅图像相减也可以检测出是否存在运动的物体
-
求差值图像
将两幅在对应像素上具有相关性的图像(如视频在时间上较近的两幅图像等)相减,得到的差值图像(幅值一般都较小)
图像加运算
-
求平均值降噪
- 当某一静止场景的多幅图像被随机噪声所污染,可以通过将这些图像相加,提高图像的信噪比,降低随机噪声对图像的干扰
- 假设单幅图像的功率信噪比为p(x,y), 则M幅图像相加求平均值后,功率信噪比提高M倍,即等于M x p(x,y)
-
图像叠加
将两幅图像透明叠加在一起(相当于二次曝光)
图像乘运算
-
图像标定
图像数字化仪器对一幅图像各点的敏感程度有可能不同,对每一点(像素)乘上一个系数,可以纠正这一影响
-
图像掩膜
- 在需要被完整保留下来的区域,掩膜图像的值为1,而在需要抑制掉的区域,掩膜图像的值为0。将原图像乘掩膜图像,可抹去图像的相应部分。
- 利用一个互补的掩膜图像,乘上另一幅图像
- 将两幅图像相加,可得到一幅新的图像
直方图定义
定义1
一个灰度级在范围 [ 0 , L − 1 ] [0,L-1] [0,L−1]的数字图像的直方图是一个离散函数 h ( r k ) = n k h(r_k)=n_k h(rk)=nk
其中, n k n_k nk是图像中灰度级为 r k r_k rk的像素个数, r k r_k rk是第k个灰度级, k = 0 , 1 , 2 , . . . , L − 1 k=0,1,2,...,L-1 k=0,1,2,...,L−1
由于 r k r_k rk的增量为1,直方图表示为: p ( k ) = n k p(k)=n_k p(k)=nk
定义2
一个灰度级在范围 [ 0 , L − 1 ] [0,L-1] [0,L−1]的数字图像的直方图是一个离散函数 p ( r k ) = n k / n p(r_k)=n_k/n p(rk)=nk/n
其中, n n n是图像的像素总数, n k n_k nk是图像中灰度级为 r k r_k rk的像素个数, r k r_k rk是第k个灰度级, k = 0 , 1 , 2 , . . . , L − 1 k=0,1,2,...,L-1 k=0,1,2,...,L−1
对比
对比上面两种定义,定义2将其映射至了[0,1]区间,函数值范围于像素总数无关,给出了灰度级 r k r_k rk在图像中的概率密度统计。
注意:直方图没有描述像素的空间关系,仅仅描述灰度级分布。
直方图均衡化
基本思想
希望一幅图像的像素占有全部可能的灰度级且分布均匀,能够具有高对比度。
把原始图的直方图变换为均匀分布的形式,增加了像素灰度值的动态范围,从而达到增强图像整体对比度的效果。
其中,我们使用灰度级变换进行实现: s = T ( r ) , 0 ≤ r ≤ 1 s=T(r),\ 0≤r≤1 s=T(r), 0≤r≤1
灰度级变换
T ( r ) T(r) T(r)满足两个条件:
-
T ( r ) T(r) T(r)在区间 0 ≤ r ≤ 1 0≤r≤1 0≤r≤1中为单值且单调递增
保证原图各灰度级在变换后仍保持从黑到白/从白到黑的排列次序
-
当 0 ≤ r ≤ 1 0≤r≤1 0≤r≤1时, 0 ≤ T ( r ) ≤ 1 0≤T(r)≤1 0≤T(r)≤1
保证变换前后灰度动态范围的一致性
均衡化计算
对于离散值: p r ( r k ) = n k n p_r(r_k)=\frac{n_k}{n} pr(rk)=nnk
为了将离散值的范围增大,分布更加均匀从而提高对比度,我们利用累加的方式,其变换函数的离散形式为:
s k = T ( r k ) = ( L − 1 ) ∑ j = 0 k p r ( r j ) = ( L − 1 ) ∑ j = 0 k n j n s_k=T(r_k)=(L-1)\sum_{j=0}^kp_r(r_j)=(L-1)\sum_{j=0}^k\frac{n_j}{n} sk=T(rk)=(L−1)∑j=0kpr(rj)=(L−1)∑j=0knnj
其中, k = 0 , 1 , . . . , L − 1 k=0,1,...,L-1 k=0,1,...,L−1
通过 s k s_k sk,根据像素点的原灰度值k作为索引,可以得到对应的均衡化后的灰度值 s k s_k sk,从而得到均衡化后的图像
直方图规定化
针对直方图均衡化的存在的一些问题,将原始图像的直方图转化为规定的直方图的形式。一般目标图像的直方图的确定需要参考原始图像的直方图,并利用多高斯函数得到。
同态滤波器
图像的灰度图像f(x,y)可以看做为入射光分量和反射光分量两部分组成:f(x,y)=i(x,y)r(x,y).入射光比较的均匀,随着空间位置变化比较小,占据低频分量段。反射光由于物体性质和结构特点不同从而反射强弱很不相同的光,随着空间位置的变化比较的剧烈。占据着高频分量。基于图像是由光照谱和反射谱结合而成的原理设计的。
基于HSV空间的彩色图像增强方法
针对于灰度图像,我们主要有以上的几种处理方法,但是针对于彩色图像,由于存在RGB分量,故而不能直接将灰度图像的处理方法应用。因为直接对每一个分量使用灰度增强的方法会导致颜色的紊乱发生。
而我们可以将RGB图像转化为其他空间的图像,比如:我们可以将RGB空间的图像转换为HSV空间的图像。HSV分别指色调,饱和度,亮度。由于调整HSV三个不同的量,我们可以得到比较直观的。
基于滤波的图像增强方法
-
局部二值模式(LBP)
1996年由Ojala提出的特征提取方法,具有灰度不变性和旋转不变性,主要用于纹理特征提取。其基本思想是:用中心像素的灰度值作为阈值,与它的邻域相比较得到的二进制码来表述局部纹理特征。
以中心点为基准,在3*3的窗口内,与8个相邻点进行比较,若小于中心点,则该位置被置0,否则被置1,这样可以得到一个8位二进制数,即共256种的LBP码。然后利用这个LBP值来反映该区域的纹理信息,值得注意的是,LBP值是顺时针组成的二进制数。
-
均值滤波
均值滤波器是包含在滤波器邻域内像素的平均值,其作用是减小图像灰度的“尖锐”变化,减小噪声,但也会存在边缘模糊的问题。
-
非线性滤波
非线性滤波器包括了中值滤波器、最大值滤波器和最小值滤波器,分别是用像素领域内的中间值、最大值、最小值代替像素,作用分别是去除噪声、寻找最亮点、寻找最暗点。
Ø 中值滤波
用像素领域内的中间值代替像素
Ø 最大值滤波
用像素领域内的最大值代替像素
Ø 最小值滤波
用像素领域内的最小值代替像素
-
高斯滤波
高斯滤波是一种线性平滑滤波器,对于服从正态分布的噪声有很好的抑制效果,通常我们都会假定白噪声为高斯噪声,实际应用中常用高斯滤波来抑制噪声。
例如标准差为1.3的3*3大小的整数形式的高斯滤波器,不难发现,最重要的参数是高斯分布的标准差σ,当σ越小,生成的算子中心系数较大,平滑的效果不会很明显;当σ越大,生成的算子各个系数相差较小,平滑效果会更加明显。
-
图像锐化
与前几个滤波作用(平滑)相反的是,我们可以对图像进行锐化操作,突出图像的边缘。具体实现方法包括了一阶导数和二阶导数,分别利用Sobel算子和Laplacian算子进行滤波。
Ø Sobel算子
Sobel算子包括横向和纵向两种算子,分别提取竖直边缘和水平边缘。
Ø Laplacian算子
Laplacian算子的操作过程域Sobel算子基本一致,它具有4邻域算子和8邻域算子。
-
Gabor滤波
Gabor滤波也是用来提取图像边缘的方法.
实验1
不调用库函数,自己动手编程实现图像增强相关方法,并与OpenCV的库函数进行效果对比分析;
- 图像增强相关方法,与opencv库函数进行效果对比分析
- 方法介绍
- 代码实现
- 对比分析
- 直方图分析
- 增强效果分析
- 平均耗时