图像的滤波与增强

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图像的滤波与增强相关的知识,希望对你有一定的参考价值。

参考技术A (如果您觉得文档不错,能不能麻烦动动小手点个赞啊)

1. 滤波实际上是信号处理得一个概念,图像可以看成一个二维信号,其中像素点的 灰度值 代表 信号的强弱 ;

2. 高频 :图像上变化剧烈的部分;

3. 低频 :图像灰度值变化缓慢,平坦的地方;

4.根据图像高低频,设置高通和低通滤波器。高通滤波器可以检测变化尖锐,明显的地方,低通可以让图像变得平滑,消除噪声;

5. 滤波作用 : 高通滤波器 用于 边缘检测 , 低通滤波器 用于图像 平滑去噪 ;

6. 线性滤波 :方框滤波/均值滤波/高斯滤波;

7. 非线性滤波 :中值滤波/双边滤波;

利用给定像素周围的像素值决定此像素的最终输出值的一种算子;

一种常用的领域算子,像素输出取决于输入像素的加权和:

 方框滤波(box Filter)被封装在一个名为boxFilter的函数中,即boxFilter函数的作用是使用方框滤波器(box filter)来模糊一张图片,从src输入,从dst输出;方框滤波核:

normalize = true 与均值滤波相同       normalize = false 很容易发生溢出

函数:

cv2.boxFilter(src,depth,ksize,normalize)

参数说明:

参数1:输入图像

参数2:目标图像深度

参数3:核大小

参数4:normalize

均值滤波是一种最简单的滤波处理,它取的是卷积核区域内元素的均值,用cv2.blur()实现

函数 :cv2.blur(src, ksize)

参数说明:

参数1:输入原图

参数2:kernel的大小,一般为奇数

高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。高斯滤波的卷积核权重并不相同,中间像素点权重最高,越远离中心的像素权重越小。其原理是一个2维高斯函数)

高斯滤波相比均值滤波效率要慢,但可以有效消除高斯噪声,能保留更多的图像细节,所以经常被称为最有用的滤波器。

函数:

cv2.Guassianblur(src, ksize, std)表示进行高斯滤波,

参数说明:

参数1:输入原图

参数2:高斯核大小

参数3:标准差σ,平滑时,调整σ实际是在调整周围像素对当前像素的影响程度,调大σ即提高了远处像素对中心像素的影响程度,滤波结果也就越平滑。

中值滤波是一种非线性滤波,是用 像素点邻域灰度值的中指代替该点的灰度值,中值滤波可以去除椒盐噪声和斑点噪声。

函数:

cv2.medianBlur(img,ksize)

参数说明:

参数1:输入原图

参数2:核大小

双边滤波是一种非线性的滤波方法,是结合图像的空间邻近度和像素值相似度的一种折中处理,同时考虑空间与信息和灰度相似性,达到保边去噪的目的,具有简单、非迭代、局部处理的特点。

函数 :cv2.bilateralFilter(src=image, d, sigmaColor, sigmaSpace)

参数说明:

参数1:输入原图

参数2:像素的邻域直径

参数3:灰度值相似性高斯函数标准差

参数4:空间高斯函数标准差

目的

直方图均衡化是将原图像通过某种变换,得到一幅灰度直方图为均匀分布的新图像的方法。

基本思想

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

函数

cv2.equalizeHist(img)

参数1:待均衡化图像

步骤

统计直方图中每个灰度级出现的次数;

计算累计归一化直方图;

重新计算像素点的像素值

Gamma变换是对输入图像灰度值进行的非线性操作,使输出图像灰度值与输入图像灰度值呈指数关系:

目的:

Gamma变换就是用来图像增强,其提升了暗部细节,通过非线性变换,让图像从暴光强度的线性响应变得更接近人眼感受的响应,即将漂白(相机曝光)或过暗(曝光不足)的图片,进行矫正。

r > 0图像变暗, r < 0图像变亮

图像增强之空间域滤波

1、为什么进行图像增强

图像增强是指增强图像中某些特征,同时削弱或去除某些不需要的信息,即为了某种应用而去改善图像的质量,消除噪声,显现那些被模糊了的细节或简单的突出一副图像中感兴趣的特征。所以图像增强并不是增强图像的原始信息,而是只针对某一特征以提高某种信息的辨别能力,图像增强需要根据需求采用特定的方法,当增强一些信息时另外一些信息必定被损失,不存在一种通用的方法,必须根据需求决定保留哪些信息丢弃哪些信息。

图像增强技术基本上可以分为两类:空间域增强、频域增强。

2、空间域滤波理论

2.1定义

空间域滤波就是在图像平面上对像素进行操作。

空间域滤波大体分为两类:平滑、锐化。

平滑滤波:模糊处理,用于减小噪声,实际上是低通滤波,典型的滤波器是高斯滤波。

锐化滤波:提取边缘突出边缘及细节、弥补平滑滤波造成的边缘模糊。实际上是高通滤波。

空间域处理可由下式表示:

g(x,y)=T[f(x,y)]

式中,f(x,y)是输入图像,g(x,y)是处理后的图像,T是在点(x,y)的邻域上定义的关于f的一种算子,算子可应用于单幅图像或图像集合。

2.2空间域滤波和邻域处理

1)空间滤波器由一个邻域(通常是一个较小的矩形)和对该邻域所包围图像像素执行的预定义操作组成。对预定义的点(x,y)为中心的领域内的像素进行计算。

2)滤波产生一个新像素,新像素的坐标等于邻域中心的坐标(x,y),像素的值是滤波操作的结果。即用计算后的新像素值作为点(x,y)的值。

3)循环步骤1和2,滤波器的中心遍历图像中的每个像素后,就生成了滤波后的图像。

4)如果在图像像素上执行的是线性操作,则该滤波器称为线性空间滤波器,否则,称为非线性空间滤波器。

一般来说,使用大小为 m×n的滤波器对大小为 M×N的图像进行线性空间滤波,可由下式表示:

技术图片

3、平滑滤波

平滑滤波可以减少和抑制图像中的噪声,平滑后图像变得模糊,噪声降低。模糊处理常用于预处理任务中,如在目标提取之前去除图像中的一些琐碎细节,以及桥接直线或曲线的缝隙。

1)工作原理

一般来说,图像具有局部连续的性质,即相邻的像素的值相近,而噪声使得噪点处产生像素跳跃,所以通过平滑噪点可以减少噪声,去除图像中的不相关细节。

2)均值滤波和加权滤波

平滑滤波的输出是包含在滤波器模板邻域内的像素的简单平均值,也就是均值滤波器。

均值滤波器是低通滤波器,常见的操作有均值滤波和加权滤波。

技术图片

W是滤波模板,模板的大小取决于需要滤除的物体的大小,使用时需要更具图像特点选择模板尺寸。

为什么使用加权,平滑滤波对领域内的像素一视同仁,但是一般认为距离模板中心的像素应对滤波结果有较大的贡献,所以将模板中心的系数取得比模板周边的系数大,随着距离中心距离增大,权重迅速减小。高速滤波就是一种加权滤波,只不过模板中的系数由高斯分布来确定的。

3)实现

Matlab滤波可以用fspecial产生滤波模板。

f=fspecial(‘average‘, 3)产生系数为:

f =

    0.1111    0.1111    0.1111

    0.1111    0.1111    0.1111

    0.1111    0.1111    0.1111

例1:均值滤波

imgPath = E:opencv_picsrc_picpic4.bmp;
img = imread(imgPath);
img = imnoise(img,salt & pepper, 0.02);
 
f=fspecial(average, 3);
img1=imfilter(img, f);
f=fspecial(average, 10);
img2=imfilter(img, f2);
 
subplot(1,3,1),imshow(img), title(原始图像);
subplot(1,3,2),imshow(img1),title(均值滤波1);
subplot(1,3,3),imshow(img2),title(均值滤波2);

可见下图,当滤波系数为3*3时,可以滤波大部分噪声,当滤波系数为10时,滤除了全部噪声但是图像变得模糊。

技术图片

例2:高斯噪声滤波

imgPath = E:opencv_picsrc_picpic4.bmp;
img = imread(imgPath);
img = imnoise(img, gaussian, 0, 0.01);
 
f=fspecial(average, 5);
img1=imfilter(img, f);
f2=fspecial(gaussian, 5, 0.8);
img2=imfilter(img, f2);
 
subplot(1,3,1),imshow(img), title(原始图像);
subplot(1,3,2),imshow(img1),title(均值滤波);
subplot(1,3,3),imshow(img2),title(高斯滤波);

两个滤波模板分别为:

f =

    0.0400    0.0400    0.0400    0.0400    0.0400

    0.0400    0.0400    0.0400    0.0400    0.0400

    0.0400    0.0400    0.0400    0.0400    0.0400

    0.0400    0.0400    0.0400    0.0400    0.0400

    0.0400    0.0400    0.0400    0.0400    0.0400

f2 =

    0.0005    0.0050    0.0109    0.0050    0.0005

    0.0050    0.0522    0.1141    0.0522    0.0050

    0.0109    0.1141    0.2491    0.1141    0.0109

    0.0050    0.0522    0.1141    0.0522    0.0050

0.0005    0.0050    0.0109    0.0050    0.0005

滤波效果如下图。

技术图片

 放大后观察细节,均值滤波在渐变处出现严重的模糊现象,高斯滤波由于使用了带权重的滤波系数,情况好很多。

技术图片

4、自适应平滑滤波

1)原理

利用平均模板平滑在消除噪声的同时也使得图像变得模糊,高斯平滑在一定程度上缓解了这些现象,但由于平滑滤波的原理可知这种模糊是不可避免的。所以可以进行选择性的平滑,即只对噪声局部区域进行平滑,对无噪声的局部区域不进行平滑,将模糊的影响降到最低。

2)实现

自适应的关键是对噪声区域的识别,哪些区域是需要平滑的,哪些区域不需要。一般地,噪声的存在使噪声点产生灰度跳跃,从而使噪声点局部区域灰度跨度较大。

所以,方法1:可以设定阈值T,当局部最大灰度和最小灰度只差大于阈值,则进行平滑;否则不平滑。方法2:当局部区域灰度方差大于阈值T则进行平滑;否则不平滑。

 

5、中值滤波

1)原理

中值滤波是一种统计排序滤波器,图像上点(x,y),中值滤波以该点为中心,领域内所有像素的统计排序中值作为此点的响应,中值滤波是非线性滤波。

相比与均值滤波和高斯滤波,中值滤波可以有效的降低随机噪声,直接忽略掉噪声点,把噪声引起的模糊降到最低。典型的应用就是中值滤波消除椒盐噪声。

2)中值滤波效果对比

imgPath = E:opencv_picsrc_picpic4.bmp;
img = imread(imgPath);
img0 = rgb2gray(img);
img = imnoise(img0,salt & pepper);
 
f=fspecial(average, 3);
img1=imfilter(img, f);
f2=fspecial(gaussian, 3, 0.8);
img2=imfilter(img, f2);
img3=medfilt2(img, [3,3]);
 
subplot(2,3,1),imshow(img0), title(原始图像);
subplot(2,3,2),imshow(img), title(噪声图像);
subplot(2,3,3),imshow(img1),title(均值滤波);
subplot(2,3,4),imshow(img2),title(高斯滤波);
subplot(2,3,5),imshow(img3),title(中值滤波);

从下图可见,线性平滑滤波在滤除噪声的同时不可避免的引起了模糊,而中值滤波在有效滤除随机噪声的同时,还有效抑制了模糊效应。对于椒盐噪声图像,中值滤波的效果要好于线性平滑滤波。

技术图片

放大后观察细节,中值滤波较好的还原了原图。

技术图片

6、参考文献

1、图像增强之空间域滤波 -- Part1. 原理篇

https://blog.csdn.net/hhaowang/article/details/87978218

2、Image Filtering and Enhancement

https://ww2.mathworks.cn/help/images/image-enhancement-and-restoration.html?s_tid=CRUX_lftnav

 

尊重原创技术文章,转载请注明。

https://www.cnblogs.com/pingwen/p/12267325.html

 

以上是关于图像的滤波与增强的主要内容,如果未能解决你的问题,请参考以下文章

贪玩巴斯数字图像处理基础课堂笔记——「亮度变换与空间滤波全解——加权平滑滤波器相关&卷积拉普拉斯图像增强变化直方图」 2021-10-1910-1210-25

《数字图像处理》第三章 灰度变化与空间滤波

图像增强基于matlab GUI图像双边滤波含Matlab源码 1342期

图像增强基于matlab HSI+同态滤波彩色图像增强含Matlab源码 1515期

图像增强基于粒子群算法优化gabor滤波器实现图像增强matlab源码

计算机视觉图像分割与特征提取——频域增强(低通滤波&高通滤波)