基于卡尔滤波的图像除噪处理

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

基于卡尔曼滤波的图像除噪处理摘要:图像在采集和和传输的过程中可能要受到外界的干扰,为了保证图像信息的准确性,除噪就显得尤为重要。本文介绍的就是利用Matlab软件使用卡尔曼滤波进行图像的除噪处理。关键词:图像除噪;Matlab;卡尔曼滤波一、引言目前大多数数字图像系统中,输入图像都是采用先冻结再扫描方式将多维图像变成一维电信号,再对其进行处理、存储、传输等加工变换。最后往往还要再组成多维图像信号,而图像噪声也将同样受到这样的分解和合成。在这些过程中电气系统和外界影响将使得图像噪声的精确分析变得十分复杂。因此,我们需要对图像进行除噪,得到更准确的图像信息。一、Matlab2.1简介Matlab是美国MathWorks公司推出的数学软件,是一种面向工程和科学计算的交互式计算软件。主要用于算法开发、数据可视化、数据分析、以及数值计算,但是由于Matlab拥有许多的附加工具箱,因此它也可以应用到其他领域,譬如:图像处理、信号检测、音频分析以及金融建模和分析等等。2.2Matlab在图像处理中的应用(1)图像文件格式的读写和显示。MATLAB提供了图像文件的读入函数imread(),用来读取,如:bmp、jpg、hdf等格式的图像文件;图像写出函数为imwrite(),以及图像显示函数image()、imshow()等。(2)图像处理的基本运算。MATLAB提供了图像的和、差等线性运算,以及卷积、滤波等非线性运算。(3)图像变换。MATLAB提供了一维和二维离散傅里叶变换(DFT)、快速傅里叶变换(FFT)、离散余弦变换(DCT)以及连续小波变换(CWT)等等。(4)图像的分析和增强。为了能对图像进行处理,MALTAB针对图像的统计计算提供了校正、中值滤波、直方图均衡、对比度调整以及自适应滤波等。2.3.均方误差(MSE)在相同测量条件下进行的测量称为等精度测量,例如在同样的条件下,用同一个游标卡尺测量铜棒的直径若干次,这就是等精度测量。对于等精度测量来说,还有一种表示误差的方法,就是标准误差。标准误差定义为各测量值的平方值的平方根,故又称为均方误差。设n个测量值的误差为,则这组测量值的标准误差等于:n......21、nn...t2n22212数理统计中均方误差是指参数估计值与参数真值之差平方的期望值,记为MSE。2.4峰值信噪比PSNR(PeakSignaltoNoiseRatio)表示的是到达噪声比率的顶点信号,PSNR一般是用于最大值信号和噪声之间的工程项目。为了衡量经过处理后的图像品质,我们通常会参考PSNR值来认定某个处理程序是否有效,或者说是处理的效果是怎么样的。Peak就是8bits表示法的最大值255,MES指的是MeanSquareError(均方误差,各值相差的n次方的平均值)。PSNR的计算公式如下:I是指原始图像第n个pixel值,P是指处理后的图像第n个pixel值。PSNR的单位为db,所以PSNR的值越大,就代表失真越少。三、卡尔曼滤波3.1卡尔曼滤波的特点卡尔曼滤波是用状态空间法描述系统的,有状态方程和量测方程组成。卡尔曼滤波是用一个状态的估计值和最近一个观测数据来估计状态变量的当前值,并以状态变量的估计值的形式给出。卡尔曼滤波具有以下的特点;(1)算法是递推的;(2)卡尔曼滤波使用于非平稳过程;(3)卡尔曼滤波采取的误差准则仍为估计误差的均方值最小。3.2状态方程和量测方程假设某系统k时刻的状态变量为,状态方程和量测方程可以表示为:其中,k表示时间,指的是第k步迭代时相应信号的取值;输入信号是一白噪声,输出信号的观测噪声也是一个白噪声;A表示状态变量之间的增益矩阵,表示第k步迭代时,增益矩阵A的取值;C表示状态变量与输出信号之间的增益矩阵,第k步迭代时取值用表示。3.3卡尔曼滤波的递推算法当不考虑观测噪声和输入信号时,状态方程和量测方程为:FramesizePIMSEMSEPSNRframesizen1222)()255log(10kxkkkkkkkkvxCywxAx1kwkvkAkC由于不考虑观测噪声的影响,输出信号的估计值与实际值是有误差的,用表示:为了提高状态估计的质量,用输出信号的估计误差来校正状态变量:其中,为增益矩阵(实质上是一个加权矩阵)。经过校正后的状态变量的估计误差以及其均方差分别用和表示,卡尔曼滤波要求状态变量的估计误差的均方差为最小,而且卡尔曼滤波的关键就是计算出加权矩阵的最佳值。把未经校正的状态变量的估计误差的均方差用表示:四、MATLAB仿真与分析4.1原理基于MATLAB平台设计卡尔曼滤波器对一张.jpg图片进行除噪处理,先导入一张图片,然后依次给图片加高斯白噪声和椒盐噪声,再利用卡尔曼滤波器除噪。除噪之后利用Matlab输出除噪前后的均方误差和峰值信噪比。源程序:%1.显示原图中分别加入椒盐噪声和高斯白噪声clear;closeall;mine=imread('C:\Users\yuerui\Desktop\hzw.jpg');%读取图像show_size=size(mine);%显示图像尺寸mine_noise1=imnoise(mine,'salt&pepper',0.05);%给图像加椒盐噪声mine_noise2=imnoise(mine,'gaussian',0.05);%对给定图像加高斯白噪声figure(1);subplot(1,3,1);imshow(mine);title('原图');%显示加椒盐噪声图像subplot(1,3,2);imshow(mine_noise1);title('椒盐噪声(0.05)');%显示加椒1'^'^'^1^'^kkkkkkkxACxCyxAxky~'^~yyykkky~)()(1^1^'^^^kkkkkkkkkkxACyHxAyyHxAxkH~kxkP'kPkkxxx^~']))([(]))([('^'^k'^^kTkkkkTkkkkxxxxEPxxxxEP盐噪声图像subplot(1,3,3);imshow(mine_noise1);title('高斯白噪声(0.05)');%显示加高斯白噪声图像%2.设计一个卡尔曼滤波器分别处理两种含噪图像[r1,c1,m]=size(mine_noise1);[r2,c2,n]=size(mine_noise2);mine_noise1=double(mine_noise1)/255;%int转化成double类型mine_noise2=double(mine_noise2)/255;%int转化成double类型P=2;%先验误差估计协方差初始值Q=0.25;%过程白噪协方差R=0.25;%观测白噪协方差A=2;%系统矩阵H=1;%观测矩阵X=mine_noise1(1,:,:);%读取加噪图像第一行Y=mine_noise1(1,:,:);mine_alter1=zeros(r1,c1,m);mine_alter2=zeros(r2,c2,n);mine_alter1(1,:,:)=X;mine_alter2(1,:,:)=Y;forK=2:r1X=A*X;%X(k|k-1)=AX(k-1|k-1)+BU(k)P=A*P*A'+Q;%P(k|k-1)=AP(k-1|k-1)A’+QKg=P*H'/(H*P*H'+R);%Kg(k)=P(k|k-1)H’/(HP(k|k-1)H’+R)X=X+Kg*(mine_noise1(K-1,:,:)-H*X);%X(k|k)=X(k|k-1)+Kg(k)(Z(k)-HX(k|k-1))P=(1-Kg*H)*P;%P(k|k)=(I-Kg(k)H)P(k|k-1)mine_alter1(K,:,:)=X;%保存像素值endforK=2:r2X=A*Y;%X(k|k-1)=AX(k-1|k-1)+BU(k)P=A*P*A'+Q;%P(k|k-1)=AP(k-1|k-1)A’+QKg=P*H'/(H*P*H'+R);%Kg(k)=P(k|k-1)H’/(HP(k|k-1)H’+R)Y=Y+Kg*(mine_noise2(K-1,:,:)-H*Y);%X(k|k)=X(k|k-1)+Kg(k)(Z(k)-HX(k|k-1))P=(1-Kg*H)*P;%P(k|k)=(I-Kg(k)H)P(k|k-1)mine_alter2(K,:,:)=Y;%保存像素值endfigure(2);subplot(1,3,1);imshow(mine_alter1);subplot(1,3,2);imshow(mine_alter2);%3.求除噪前后图像的均方差和峰值信噪比signal=0;fori=1:r1forj=1:c1signal=signal+(mine_alter1(i,j)-mine_noise1(i,j))^2;endendmse1=(signal/(r1*c1))psnr1=10*log((255^2)/mse1)fori=1:r1forj=1:c1signal=signal+(mine_alter1(i,j)-mine_noise1(i,j))^2;endendmse2=(signal/(r2*c2))psnr2=10*log((255^2)/mse2)4.2实验结果(1)加入均值为0、方差为0.05的椒盐噪声和高斯白噪声:图4.1仿真结果(2)除噪前后的峰值信噪比以及均方误差加入噪声类型峰值信噪比(PSNR)均方误差(MSE)方差为0.05的椒盐噪声137.85890.0670方差为0.05的高斯白噪声130.92740.1340表4.1除噪后的峰值信噪比以及均方误差4.3分析从图4.1以及表4.1可以看出,卡尔曼滤波器可以对图像进行除噪处理,而且处理椒盐噪声的效果要比处理高斯白噪声的好,说明卡尔曼滤波器对椒盐噪声有更好的抑制作用。五、结束语本文通过MATLAB软件成功的实现了卡尔曼滤波的图像除噪处理。在数字图像处理领域,对于图像除噪处理技术的研究具有十分重要的作用。本文最终的除噪效果并不十分理想,只可以去掉部分的噪声,尤其是图像的边缘部分的噪声的处理就不是很好。参考文献[1]丁玉美,高西全.数字信号处理[M].西安:西安电子科技大学出版社,2001.[2]张宏伟.基于MATLAB的图像去噪方法的研究与实现[J].大庆师范学院报,2016(3):01-04.[3]冯刚,吕茂庭,覃天.基于MATLAB的卡尔曼滤波仿真研究[J].计算机科学与技术,2011(12):1672-5468.[4]岂兴明,王占富,郭正彪,矫津毅.MATLAB7.0程序快速入门[M].北京:人民邮电出版社,2009.[5]许爱强,史贤俊,曲东才.MATLAB平台下数字信号优化处理及其仿真[J].计算机仿真,2003(z1):1006-9348.[6]李永全.Matlab在数字信号处理课程设计中的应用[J].现代电子技术,2004(7):1004-373X.[7]谭菊华,王涛.基于MATLAB实现卡尔曼滤波器的设计[J].计算机光盘软件与应用,2011(07):1007-9599.[8]王向阳,杨红颖,牛盼盼.高级数字图像处理技术[M].北京:北京师范大学出版社,2014.9.

1 / 7
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功