当前位置: 代码迷 >> 综合 >> 冈萨雷斯《数字图像处理》学习笔记(三)空间域图像增强
  详细解决方案

冈萨雷斯《数字图像处理》学习笔记(三)空间域图像增强

热度:1   发布时间:2023-11-22 04:26:31.0

目录

 

空域增强技术:

1 空域技术分类

1.1基础概念

1.2 图像间的运算:

1.3直接灰度映射:直接灰度映射是一种点操作

1.4 直方图变换:直方图是图像的一种统计表达,直方图反映了图中灰度的分布情况:

2 滤波器

2.1 线性平滑滤波器

2.2非线性滤波

附加知识点


空域增强技术:

基础知识1:

定义二维函数f(x,y),其中x,y是空间坐标,f(x,y)是点(x,y)的幅值。

灰度图像是一个二维灰度(亮度)函数f(x,y);彩色图片是由三个二维灰度函数f(x,y)组成。

像素组成的二维排列可以用矩阵来表示:

1)对于单色(灰度)的图像而言,每个像素的亮度用一个数值来表示,通常数值范围是0~255之间,0表黑,255表示白,它的值处于黑白之间的灰度。

2)彩色图像可以用红绿蓝三原色的二维矩阵来组成,即有三个二维数组。三元组的每个数值也在0~255之间,0表示相应的基色再该像素中没有,255表示相应的基色在该像素中取得最大值。

基础知识2:

图像增强
目标:改善图像质量/改善视觉效果
标准:相当主观,因人而异

      没有完全通用的标准
      可以有一些相对一致的准则
技术:“好”,“有用”的含义不相同
      具体增强技术也可以大不相同

            

1 空域技术分类

1.1基础概念

空域:指由像素组成的空间

空域增强:

点操作:灰度点操作:  

        几何操作:    

点操作:输出值仅与像素灰度有关的处理称为点处理: 

(1)  借助对一系列图像间的操作进行变换
(2)  将f (·)中的每个像素按EH操作直接变换以得到g(·);
(3)  借助f (·)的直方图进行变换

模板操作(涉及邻域):

1.2 图像间的运算:

图像间的运算指以图像为单位进行的操作,运算的结果是一幅新图像。

1.2.1  算术和逻辑运算

对整幅图像的算术和逻辑运算是逐像素进行的,即在两幅图像的对应(位置)像素间进行。
A、算术运算
   (1)  加法:记为p + q
   (2)  减法:记为p – q
   (3)  乘法:记为p * q
   (4)  除法:记为p÷q

B、逻辑运算(只用于二值图像)
   (1)  补(COMPLEMENT):记为NOT q
   (2)  与(AND):       记为p AND q 
   (3)  或(OR):        记为p OR q
   (2)  异或(XOR):     记为p XOR q

1.2.2  图像间运算的应用


1)、像素间的加法运算:去除“叠加性”噪音生成图象叠加效果


去除叠加性噪声:

2)像素间的减法运算主要应用:
—去除不需要的叠加性图案
—检测同一场景两幅图像之间的变化
—计算物体边界的梯度

3)图像间乘法的应用:

--图像的局部显示,用二值模板图像与原图像做乘法

1.3直接灰度映射:直接灰度映射是一种点操作

 f (x, y)中的每个像素灰度按EH 操作直接变换以得到g(x, y)

1.3.1  灰度映射原理

 
直接灰度映射如上图,利用E(s)函数,s:横轴是原图;T:纵轴是映射后的图

1.3.2  典型灰度映射

a)图像求反;b)增强对比度;c)动态范围压缩;d)灰度切分

1.3.3变换方法

反变换:s=(L-1)-r

[0,L-1]为图像的灰度级,反变换的作用是将黑的变白,白的变黑。

对数变换:s=clog(1+r),其中c是常数,r>=0 对数变换的作用是对原图进行灰度压缩

有些原图太大,超过某些显示设备的动态范围,如果直接使用原图,则一部分细节可能会丢失,使用的办法是对原图进行灰度压缩,如对数变换!下图左边是一副图像的傅里叶变换,右边是在傅里叶变换的基础上进行对数变换的结果图。

幂次变换:

幂次小于1时扩展低灰度级,压缩高灰度级,使图像变亮。这一点与对数变换十分相似。幂次大于1时扩展高灰度级,压缩低灰度级,使图像变暗。

栗子:

下图左边是:a图是原图,b、c、d三幅图对应的r依次是3、4、5。由于r>1,变换后使得图像变暗。

下图右边是:a图是原图,b、c、d三幅图对应的r依次是0.6、0.4、0.3。由于r>1,变换后使得图像变亮。其中0.4时效果最好。

             

1.4 直方图变换:直方图是图像的一种统计表达,直方图反映了图中灰度的分布情况:

灰度统计直方图:1-D的离散函数提供了图像像素的灰度值分布情况。


设置一个有 L 个元素的数组,对原图的灰度值进行统计;灰度级的范围是[0,L-1]

数字图像直方图是离散函数h(rk)= nk 或者 p(rk)=nk/n

其中rk是第K个灰度级,rk的增量是1,K =0,1,2...L-1;nk是图像中灰度级为rk的像素个数;n是像素总数,后者将函数值正则化到[0,1]

                    


1.4.1直方图均衡化:借助直方图变换实现(归一的)灰度映射

基本思想:对在图像中像素个数多的灰度级进行展宽,而对像素个数少的灰度级进行缩减。从而达到清晰图像的目的。

变换原始图像的直方图为均匀分布==> 扩大动态范围
使像素灰度值的动态范围最大==> 增强图像整体对比度(反差)

直方图均衡化的目的是使得变换后的图像的直方图是均匀分布的,又因为概率密度是指变量落在某个区间的概率,而累积分布函数的导数就是概率密度函数。所以,当分布均匀时,就是使得概率密度能够保持为一个常数。有了这些分析,我们的目的就是想找到这样的一种变换函数,使得变换后图像直方图分布均匀(这里的直方图都用灰度级的个数除以总像素个数,进行归一化。)

假设r和s分别是变换之前和变换之后的图像灰度级,r和s都进行了归一化的处理。假设变换函数为

s=T(r),此变换公式满足0≤r≤1,0≤s≤1;当0≤r≤1时,T(r)是单调递增的。

则,假设r的概率密度为P(r),则s的概率密度可以表示为(根据上面我们介绍的概率密度函数的求解方法):

(1)

假设从r到s的变换函数为

  (2)

式中,明显是r的累积分布函数(也就是

公式(2)两边对r求导得到

带入到公式(1)中,得到

当我们用r的累积分布函数作为变换函数时,得到s的概率密度函数是1(也就是均匀的意思),这里就用连续函数的方式证明了采用原始图像直方图的累积分布来实现直方图均衡化是可行的。

由于我们的图像是离散的,所以,这样怎么求变换后的图像呢,只是把连续的函数离散化就行了。

(1)先求原始图像的直方图,就是每个灰度级的像素个数除以总像素个数,就是概率密度,

(2)原始图像灰度级概率密度的累积就是新图像灰度级的概率密度

k是新图像的灰度级,最大是255,也可以任意设置。

(3)由于上面求得的s是0到1之间的,然后乘以255或者设置的最大灰度级,就得到新图像的灰度值。

1.4.2直方图规定化

前面介绍了直方图均衡化,但是这是一种通用的对比度提升方法,如果我们想把图像变换到制定的直方图就显得力不从心。所以就有了直方图规定化,就是对原始图像做变换,使得变换后的图像的直方图跟我们规定的一样。

假设原始图像的像素值为r,概率密度为P(r);做直方图均衡化之后的灰度值为s,均衡化之后的概率密度为P(s);希望要的图像的概率密度为P(z),再次情况下,求得其像素值z。

实际上,规定化也是均衡化的一种,那么,就可以把均衡化的结果作为一种中间结果,建立起原始图像与固定化图像的一种桥梁。

具体步骤如下:

(1)首先对原始图像做直方图均衡化,得到每个像素s和累积分布T(s);

(2)根据需要的规定化直方图,求累积分布G(Z);

(3)显然,如果累积直方图中有0值,那么是不会分配像素值的,因为0乘以255还是零。

(4)对于每一个T(s)(假设其像素值为ss),找到在G(Z)中与其差值最小的那个G(z)值(假设对应的像素值为zz),那么规定化后就把ss变换为zz。

栗子:

2 滤波器

线性平滑滤波器:减弱或消除图像中的噪声

统计排序滤波器:适合去除加性椒盐噪声,常见的是中值滤波器

空域滤波技术根据功能主要分为平滑滤波锐化滤波


  平滑滤波能减弱或消除图像中的高频率分量而不影响低频分量,高频分量对应图像中的区域边缘等灰度值具有较大变化的部分,平滑滤波可将这些分量滤去减少局部灰度起伏,使图像变得比较平滑。也可用于消除噪声,或在提取较大目标前去除小的细节或将目标的小间断连接起来。 
  在平滑滤波中,均值(线性)滤波可能带来轮廓模糊的副作用,而中值滤波(非线性)滤波去噪效果优秀,相较均值滤波其模糊程度更低,尤其是针对脉冲噪声的去噪,但有可能带来图像性质的改变
锐化滤波正好相反,锐化滤波常用于增强被模糊的细节或目标的边缘,强化图像的细节

空间滤波和空间滤波器的区别:

使用空间模板进行的图像处理称为空间滤波;模板本身称为空间滤波器

分类一:

线性滤波器:领域平均;卷积操作

非线性滤波器:中值滤波器

分类二:

平滑(低通)滤波器:模糊、消除噪声

锐化(高通)滤波器:增强被模糊的细节

2.1 线性平滑滤波器

(1)邻域平均: 保持灰度的范围:所有的系数之和为1,得到标准像素平均值

(2)加权平均:中心系数大,周围系数小,表明一些像素更为重要

       作用:减小图像灰度的尖锐变化,减小噪声;由于图像边缘是由图像灰度锐化变化引起的,所以也存在边缘模糊的问题。


2.2非线性滤波

逻辑的、几何的、代数的非线性滤波器
基于集合的、基于形状的、基于排序的

(1)非线性平滑滤波器:

   中值滤波:既除噪声又保持细节

   最大滤波器:寻找亮点

   最小滤波器:寻找暗点

(2)非线性锐化滤波器:利用微分可以得到锐化图像(积分平滑图像)

     

     
   二阶微分滤波器:拉普拉斯算子

   一阶微分滤波器: 梯度算子

从模板形式容易看出,如果在图像中一个较暗的区域中出现了一个亮点,那么用拉普拉斯运算就会使这个亮点变得更亮。图像中的边缘就是那些灰度发生跳变的区域,所以拉普拉斯锐化模板中边缘检测中很有用。但该算子也会增强图像中的噪声,有时可将图像先进行平滑处理再用拉普拉斯算子。将原始图像和拉普拉斯变换图像想家,既能保护拉普拉斯变换的效果,又能复原背景信息。

        

1)梯度算子

2)Roberts交叉梯度算子

3)Prewitt梯度算子

4)Sobel算子

边界处理 
执行滤波操作需注意当模板位于图像边缘时,需要对边缘附近的那些元素执行滤波操作单独处理,以避免引用到本不属于图像的无意义的值(在Matlab中这将引起系统的警告,而在vc中很可能会由于非法访问内存而产生运行错误〉。

以下3种策略都可以用来解决边界问题: 
(1)收缩处理范围一处理时忽略位于图像f 边界附近会引起问题的那些点, 如对于 
图5.1中所使用的模板, 处理时忽略图像f 四周一圈1个像素宽的边界, 即只处理从x = 
1,2 ,3, … .M-2和y = 1,2,3, .. .N-2 (在Matlab中应为x = 2,3,4, … ,M-1和y = 2,3,4, … N-1)范围内 
的点, 从而确保了滤被过程中模板始终不会超出图像f 的边界。 
(2)使用常数填充图像一根据模板形状为图像f 虚拟出边界. 虚拟边界像素值为指定 
的常数, 如0, 得到虚拟图像f ’。保证模板在移动过程中始终不会超出f ’的边界。 
(3)使用复制像素的方法填充图像,和(2)基本相同, 只是用来填充虚拟边界像素 
值的不是固定的常数, 而是复制图像f本身边界的模式. 
 

附加知识点

图像处理之卷积概念:

我们来看一下一维卷积的概念. 
连续空间的卷积定义是 f(x)与g(x)的卷积是 f(t-x)g(x) 在t从负无穷到正无穷的积分值.t-x要在f(x)定义域内,所以看上去很大的积分实际上还是在一定范围的. 
实际的过程就是f(x) 先做一个Y轴的反转,然后再沿X轴平移t就是f(t-x),然后再把g(x)拿来,两者乘积的值再积分.想象一下如果g(x)或者f(x)是个单位的阶越函数. 那么就是f(t-x)与g(x)相交部分的面积.这就是卷积了. 
把积分符号换成求和就是离散空间的卷积定义了.

对于图像而言,离散卷积的计算过程是模板翻转,然后在原图像上滑动模板,把对应位置上的元素相乘后加起来,得到最终的结果。如果不考虑翻转,这个滑动-相乘-叠加的过程就是相关操作。事实上我也一直用相关来理解卷积。在时域内可以从两个角度来理解这样做的含义。

一种是滤波,比如最简单的高斯模板,就是把模板内像素乘以不同的权值然后加起来作为模板的中心像素值,如果模板取值全为1,就是滑动平均;如果模板取值为高斯,就是加权滑动平均,权重是中间高,四周低,在频率上理解就是低通滤波器;如果模板取值为一些边缘检测的模板,结果就是模板左边的像素减右边的像素,或者右边的减左边的,得到的就是图像梯度,方向不同代表不同方向的边缘;

另一种理解是投影,因为当前模板内部图像和模板的相乘累加操作就是图像局部patch和模板的内积操作,如果把patch和模板拉直,拉直的向量看成是向量空间中的向量,那么这个过程就是patch向模板方向上的投影,一幅图像和一个模板卷积,得到的结果就是图像各个patch在这个方向上的response map或者feature map;如果这样的模板有一组,我们可以把这一组看成一组基,得到的一组feature map就是原图像在这组基上的投影。常见的如用一组Garbor滤波器提取图像的特征,以及卷积神经网络中的第一层,图像在各个卷积核上的投影。

我们之所以决定使用卷积后的特征是因为图像具有一种“静态性”的属性。也就是说使用卷积就是为了提取显著特征,减少特征维数,减少计算量。

在对图像进行卷积操作后的主观印象:图像变得模糊了,可是我们依然能够分辨出是什么!所以卷积就是提取显著特征!

高斯平滑及其实现
平均平滑对邻域内的像素一视同仁, 为了减少平滑处理中的模糊, 得到更自然的平滑效 
果, 则会很自然地想到适当加大模板中心点的权重, 随着远离中心点, 权重迅速减小, 从而 
可以确保中心点看起来更接近与它距离更近的点, 基于这种考虑得到的模板即为高斯模板。 
常用的3×3的高斯模板如下所示: 

数字图像处理中滤波和卷积操作详细说明