基于卡尔滤波的图像除噪处理Word文档下载推荐.docx
《基于卡尔滤波的图像除噪处理Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于卡尔滤波的图像除噪处理Word文档下载推荐.docx(7页珍藏版)》请在冰豆网上搜索。
MATLAB提供了图像文件的读入函数imread(),用来读取,如:
bmp、jpg、hdf等格式的图像文件;
图像写出函数为imwrite(),以及图像显示函数image()、imshow()等。
(2)图像处理的根本运算。
MATLAB提供了图像的和、差等线性运算,以及卷积、滤波等非线性运算。
(3)图像变换。
MATLAB提供了一维和二维离散傅里叶变换〔DFT〕、快速傅里叶变换〔FFT〕、离散余弦变换〔DCT〕以及连续小波变换〔CWT〕等等。
(4)图像的分析和增强。
为了能对图像进展处理,MALTAB针对图像的统计计算提供了校正、中值滤波、直方图均衡、比照度调整以及自适应滤波等。
2.3.均方误差〔MSE)
在一样测量条件下进展的测量称为等精度测量,例如在同样的条件下,用同一个游标卡尺测量铜棒的直径假设干次,这就是等精度测量。
对于等精度测量来说,还有一种表示误差的方法,就是标准误差。
标准误差定义为各测量值的平方值的平方根,故又称为均方误差。
设n个测量值的误差为
,那么这组测量值的标准误差
等于:
数理统计中均方误差是指参数估计值与参数真值之差平方的期望值,记为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卡尔曼滤波的递推算法
当不考虑观测噪声和输入信号时,状态方程和量测方程为:
由于不考虑观测噪声的影响,输出信号的估计值与实际值是有误差的,用
表示:
为了提高状态估计的质量,用输出信号的估计误差
来校正状态变量:
其中,
为增益矩阵〔实质上是一个加权矩阵〕。
经过校正后的状态变量的估计误差以及其均方差分别用
和
表示,卡尔曼滤波要求状态变量的估计误差的均方差
为最小,而且卡尔曼滤波的关键就是计算出加权矩阵的最正确值。
把未经校正的状态变量的估计误差的均方差用表示:
四、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'
%对给定图像加高斯白噪声
figure
(1);
subplot(1,3,1);
imshow(mine);
title('
原图'
%显示加椒盐噪声图像
subplot(1,3,2);
imshow(mine_noise1);
椒盐噪声(0.05)'
subplot(1,3,3);
高斯白噪声(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;
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:
r1
X=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’+Q
Kg=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,:
%保存像素值
end
r2
X=A*Y;
%Kg(k)=P(k|k-1)H’/(HP(k|k-1)H’+R)
Y=Y+Kg*(mine_noise2(K-1,:
)-H*Y);
mine_alter2(K,:
figure
(2);
imshow(mine_alter1);
imshow(mine_alter2);
%3.求除噪前后图像的均方差和峰值信噪比
signal=0;
fori=1:
forj=1:
c1
signal=signal+(mine_alter1(i,j)-mine_noise1(i,j))^2;
mse1=(signal/(r1*c1))
psnr1=10*log((255^2)/mse1)
mse2=(signal/(r2*c2))
psnr2=10*log((255^2)/mse2)
4.2实验结果
(1)参加均值为0、方差为0.05的椒盐噪声和高斯白噪声:
图4.1仿真结果
(2)除噪前后的峰值信噪比以及均方误差
参加噪声类型
峰值信噪比(PSNR)
均方误差(MSE)
方差为0.05的椒盐噪声
137.8589
0.0670
方差为0.05的高斯白噪声
130.9274
0.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.