81.视频图像去噪滤波算法的相关介绍

一.为什么要去噪

  图像去噪是数字图像处理中的重要环节和步骤。去噪效果的好坏直接影响到后续的图像处理工作如图像分割、边缘检测等。图像信号在产生、传输过程中都可能会受到噪声的污染,一般数字图像系统中的常见噪声主要有:高斯噪声(主要由阻性元器件内部产生)、椒盐噪声(主要是图像切割引起的黑图像上的白点噪声或光电转换过程中产生的泊松噪声)等;所以前端的滤波没做好的话,会给后端的图像处理带来很多的麻烦,其实它最终的反应是图像在显示器上给人的视觉效果,我们要针对不同的应用达到最大优化。

二.怎么去噪

纵观网上论述,有各种去噪算法,现就我所知的就如下一一介绍。

2.1经典滤波算法

经典滤波算法有三种,均值滤波,中值滤波,wiener维纳滤波。

2.1.1均值滤波

均值滤波是中简单实用的线性滤波,基本思想是给目标像素一个包含其周围临近像素的模板,用模板中的像素平均值替代原像素值。一般来说,为了使得输出图像仍能保持在原灰度范围内,像素领域与模板的乘机需要除以9,以3x3领域为例,假设当前的待处理像素为f(m,n),那么最简单额一种均值滤波模块为

                        

对上式加以修正,得到加权平均滤波器,如下:

            

假设一副为MxNde数字图像f(x,y),经过平滑滤波后所得的数字图像为g(x,y),那么它的每个像素点的灰度值由几个包含(x,y)的预定领域的像素的灰度级平均值来决定。如下所示:

                          

式中,S是(x,y)像素点的不包含(x,y)这一像素点的预定领域,k是在S内坐标点的总数。

如果让某一图像经过一低通滤波器,就相当于是对图像进行均值滤波处理,这种滤波处理主要是通过把哪些突变点的灰度都分散在与其相邻点中,以达到平衡滤波效果。一般来说,经过均值滤波处理后图像得到平滑,同时噪声也得到抑制,但是对于极限像素值,这种与周围像素灰度值相差较大的像素,均值滤波比较敏感,会使图像边缘变得模糊。

2.1.2中值滤波

  基于排序统计理论的一种能有效抑制噪声的非线性平滑滤波信号处理技术。中值滤波的特点即是首先确定一个以某个像素为中心点的邻域,一般为方形邻域,也可以为圆形、十字形等等,然后将邻域中各像素的灰度值排序,取其中间值作为中心像素灰度的新值,这里领域被称为窗口,当窗口移动时,利用中值滤波可以对图像进行平滑处理。其算法简单,时间复杂度低,但其对点、线和尖顶多的图像不宜采用中值滤波。很容易自适应化。matlab程序如下:

1 I = im2double(imread(‘E:/0.jpg‘));
2 I = rgb2gray(I);
3 I1 = imnoise(I,‘salt & pepper‘);
4 I2 = medfilt2(I1);
5 I3 = imnoise(I,‘gaussian‘);
6 I4 = medfilt2(I3);

2.1.3wiener维纳滤波

使原始图像和其恢复图像之间的均方误差最小的复原方法,是一种自适应滤波器,根据局部方差来调整滤波器效果。对于去除高斯噪声效果明显。恢复图像f1(x,y)与原始图像f(x,y)之间的均方误差MSE的值最小的目标。最小均方误差MSE定义如下:

            

对误差进行平方运算,使得大误差的分量远小于小误差分量,通过选择min MSE可以限制滤波输出的主要误差,同时可以使用其他的最优准则来进行分析(例如平均误差)。但这些准则将使得分析的过程变得更为复杂,而且效果也不是那么好。

2.2形态学滤波

  数学形态学主要包括膨胀,腐蚀,开运算,闭运算四个基本运算,其它的运算形式都可以由这四个基本运算通过不同的组合方式推导得到。在这四个基本运算中,结构元素贯穿其中,它是指一定尺寸的背景图像,没有固定的大小,也没有固定的形态,是根据输入图像和所需信息的形状特征,在形态变换算法设计时一并设计出来的。结构元素的选取直接关系到输入图像的处理结果。

对于二值图像,可以消除物体周围的噪声块;而利用闭运算,可以消除物体内部的噪声孔。对于灰度图像,在实际应用中开运算和闭运算分别用来消除较小尺寸的亮细节和暗细节。因此,将两种运算结合起来,可以很好的滤除亮区和暗去中的各类噪声,另外,结构元素与两种滤波相结合对图像细节的保护更有优势。腐蚀滤波的MATLAB程序如下:

 1 %% imdilate膨胀
 2 clc
 3 clear
 4
 5 A1=imread(‘.\images\dipum_images_ch09\Fig0906(a)(broken-text).tif‘);
 6 info=imfinfo(‘.\images\dipum_images_ch09\Fig0906(a)(broken-text).tif‘)
 7 B=[0 1 0
 8    1 1 1
 9    0 1 0];
10 A2=imdilate(A1,B);%图像A1被结构元素B膨胀
11 A3=imdilate(A2,B);
12 A4=imdilate(A3,B);
13
14 subplot(221),imshow(A1);
15 title(‘imdilate膨胀原始图像‘);
16
17 subplot(222),imshow(A2);
18 title(‘使用B后1次膨胀后的图像‘);
19
20 subplot(223),imshow(A3);
21 title(‘使用B后2次膨胀后的图像‘);
22
23 subplot(224),imshow(A4);
24 title(‘使用B后3次膨胀后的图像‘);
25  27%imdilate图像膨胀处理过程运行结果如下:

关于形态学滤波的几种matlab程序请参考链接 http://www.cnblogs.com/tornadomeet/archive/2012/03/20/2408086.html

2.3小波变换

  小波变换相对的来说比较复杂,傅里叶变换是用一系列不同频率的正余弦函数去分解原函数,变换后得到是原函数在正余弦不同频率下的系数。小波变换使用一系列的不同尺度的小波去分解原函数,变换后得到的是原函数在不同尺度小波下的系数。不同的小波通过平移与尺度变换分解,平移是为了得到原函数的时间特性,尺度变换是为了得到原函数的频率特性。小波变换步骤:

1.把小波w(t)和原函数f(t)的开始部分进行比较,计算系数C。系数C表示该部分函数与小波的相似程度。

2.把小波向右移k单位,得到小波w(t-k),重复1。重复该部知道函数f结束.

3.扩展小波w(t),得到小波w(t/2),重复步骤1,2.

4.不断扩展小波,重复1,2,3.

详情请参考如下链接

http://www.cnblogs.com/tiandsp/archive/2013/04/12/3016989.html

http://blog.sina.com.cn/s/blog_4b9b714a0100cuzo.html

2.4双边滤波

双边滤波器是什么?双边滤波(Bilateral filter)是一种可以保边去噪的滤波器。之所以可以达到此去噪效果,是因为滤波器是由两个函数构成。一个函数是由几何空间距离决定滤波器系数。另一个由像素差值决定滤波器系数。

程序和公式详情请参考如下链接:

http://blog.csdn.net/abcjennifer/article/details/7616663

2.5guide filter导向滤波

导向滤波网上讨论比较少,不过它是目前滤波算法当中滤波效果比较好的,速度快。

三.总结

  针对各种滤波算法的讨论后,可知目前导向滤波的效果比较好,但这些都只是经过matlab验证,与实际的工程应用,还得根据综合情况来验证。

时间: 2024-10-08 11:39:34

81.视频图像去噪滤波算法的相关介绍的相关文章

各种滤波算法的介绍及其实现

1.限幅滤波法(又称程序判断滤波法) A.方法:   根据经验判断,确定两次采样允许的最大偏差值(设为A)   每次检测到新值时判断:   如果本次值与上次值之差<=A,则本次值有效   如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值B.优点:   能有效克服因偶然因素引起的脉冲干扰C.缺点   无法抑制那种周期性的干扰   平滑度差 2.中位值滤波法A.方法:   连续采样N次(N取奇数)   把N次采样值按大小排列   取中间值为本次有效值B.优点:   能有效克

基于Vivado HLS在zedboard中的Sobel滤波算法实现

 基于Vivado HLS在zedboard中的Sobel滤波算法实现 平台:zedboard  + Webcam 工具:g++4.6  + VIVADO HLS  + XILINX EDK + XILINX SDK 系统:ubuntu12.04 总体设计思路 sobel 算法理论基础       索贝尔算子(Sobel operator)主要用作边缘检测,在技术上,它是一离散性差分算子,用来运算图像亮度函数的灰度之近似值.在图像的任何一点使用此算子,将会产生对应的灰度矢量或是其法矢量. 该

基于FPGA的均值滤波算法实现

我们为了实现动态图像的滤波算法,用串口发送图像数据到FPGA开发板,经FPGA进行图像处理算法后,动态显示到VGA显示屏上,前面我们把硬件平台已经搭建完成了,后面我们将利用这个硬件基础平台上来实现基于FPGA的一系列图像处理基础算法. 椒盐噪声(salt & pepper noise)是数字图像的一个常见噪声,所谓椒盐,椒就是黑,盐就是白,椒盐噪声就是在图像上随机出现黑色白色的像素.椒盐噪声是一种因为信号脉冲强度引起的噪声,产生清楚该噪声的算法也比较简单. 均值滤波的方法将数据存储成3x3的矩阵

目标跟踪之粒子滤波---Opencv实现粒子滤波算法

目标跟踪学习笔记_2(particle filter初探1) 目标跟踪学习笔记_3(particle filter初探2) 前面2篇博客已经提到当粒子数增加时会内存报错,后面又仔细查了下程序,是代码方面的问题.所以本次的代码与前几次改变比较小.当然这些code基本也是参考网上的.代码写得很不规范,时间不够,等以后有机会将其优化并整理成类的形式.)              Opencv实现粒子滤波算法            摘要 本文通过opencv实现了一种目标跟踪算法——粒子滤波算法,算法的

双边滤波算法原理及实现

双边滤波算法原理 双边滤波是一种非线性滤波器,它可以达到保持边缘.降噪平滑的效果.和其他滤波原理一样,双边滤波也是采用加权平均的方法,用周边像素亮度值的加权平均代表某个像素的强度,所用的加权平均基于高斯分布[1].最重要的是,双边滤波的权重不仅考虑了像素的欧氏距离(如普通的高斯低通滤波,只考虑了位置对中心像素的影响),还考虑了像素范围域中的辐射差异(例如卷积核中像素与中心像素之间相似程度.颜色强度,深度距离等),在计算中心像素的时候同时考虑这两个权重. 双边滤波的核函数是空间域核与像素范围域核的

SSE图像算法优化系列二十二:优化龚元浩博士的曲率滤波算法,达到约500 MPixels/Sec的单次迭代速度。

  2015年龚博士的曲率滤波算法刚出来的时候,在图像处理界也曾引起不小的轰动,特别是其所说的算法的简洁性,以及算法的效果.执行效率等方面较其他算法均有一定的优势,我在该算法刚出来时也曾经有关注,不过那个时候看到是迭代的算法,而且迭代的次数还蛮多了,就觉得算法应该不会太快,所以就放弃了对其进一步优化.最近,又偶尔一次碰触到该文章和代码,感觉还是有蛮大的优化空间的,所以抽空简单的实现他的算法.   该算法作者已经完全开源,项目地址见:https://github.com/YuanhaoGong/C

滤波算法:经典卡尔曼滤波

这两天学习了一些卡尔曼滤波算法的相关知识.相比其它的滤波算法,卡尔曼滤波在对计算量需求非常之低,同时又能达到相当不错的滤波结果. 1. 算法原理 网上看到一篇文章http://www.bzarg.com/p/how-a-kalman-filter-works-in-pictures/对卡尔曼滤波讲解的十分形象透彻,国内也有这篇文章的中文翻译版,链接:https://blog.csdn.net/u010720661/article/details/63253509,这里还是先简单的介绍一下. 卡尔

OpenCV学习笔记(十九):Kalman滤波算法

在视频跟踪处理中,预测目标运动轨迹是一项基本任务.目标运动状态估计的目的有三个:一是对目标过去的状态进行平滑:二是对目标现在的运动状态进行滤波:三是对目标未来的运动状态进行预测.物体的运动状态一般包括目标位置.速度.加速度等.著名的Kalman滤波技术就是其中一种,这是一种线性系统估计技术. OpenCV中自带了kalman滤波的代码和例程,可参照kalman.cpp,它存在于类KalmanFilter中.kalman滤波算法的调用比较方便,主要的难点是了解多个参数和矩阵计算公式.一个总体的思路

AD采集滤波算法

收集的关于基础滤波算法: 理论上讲单片机从A/D芯片上采集的信号就是需要的量化信号,但是由于存在电路的相互干扰.电源噪声干扰和电磁干扰,在A/D芯片的模拟输入信号上会叠加周期或者非周期的干扰信号,并会被附加到量化值中,给信号带来一定的恶化.考虑到数据采集的实时性和安全性,有时需要对采集的数据进行软处理,一尽量减小干扰信号的影响,这一过程称为数据采集滤波. 以下介绍十种数据采集滤波的方法和编程实例.这10种方法针对不同的噪声和采样信号具有不同的性能,为不同场合的应用提供了较广的选择空间.选择这些方