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

上传人:b****5 文档编号:4716543 上传时间:2022-12-07 格式:DOCX 页数:7 大小:207.14KB
下载 相关 举报
基于卡尔滤波的图像除噪处理.docx_第1页
第1页 / 共7页
基于卡尔滤波的图像除噪处理.docx_第2页
第2页 / 共7页
基于卡尔滤波的图像除噪处理.docx_第3页
第3页 / 共7页
基于卡尔滤波的图像除噪处理.docx_第4页
第4页 / 共7页
基于卡尔滤波的图像除噪处理.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

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

《基于卡尔滤波的图像除噪处理.docx》由会员分享,可在线阅读,更多相关《基于卡尔滤波的图像除噪处理.docx(7页珍藏版)》请在冰豆网上搜索。

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

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

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

摘要:

图像在采集和和传输的过程中可能要受到外界的干扰,为了保证图像信息的准确性,除噪就显得尤为重要。

本文介绍的就是利用Matlab软件使用卡尔曼滤波进展图像的除噪处理。

关键词:

图像除噪;Matlab;卡尔曼滤波

一、引言

目前大多数数字图像系统中,输入图像都是采用先冻结再扫描方式将多维图像变成一维电信号,再对其进展处理、存储、传输等加工变换。

最后往往还要再组成多维图像信号,而图像噪声也将同样受到这样的分解和合成。

在这些过程中电气系统和外界影响将使得图像噪声的准确分析变得十分复杂。

因此,我们需要对图像进展除噪,得到更准确的图像信息。

一、Matlab

2.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个测量值的误差为

,那么这组测量值的标准误差

等于:

数理统计中均方误差是指参数估计值与参数真值之差平方的期望值,记为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',0.05);%对给定图像加高斯白噪声

figure

(1);

subplot(1,3,1);imshow(mine);title('原图');%显示加椒盐噪声图像

subplot(1,3,2);imshow(mine_noise1);title('椒盐噪声(0.05)');%显示加椒盐噪声图像

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:

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,:

:

)=X;%保存像素值

end

forK=2:

r2

X=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’+Q

Kg=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;%保存像素值

end

figure

(2);

subplot(1,3,1);imshow(mine_alter1);

subplot(1,3,2);imshow(mine_alter2);

%3.求除噪前后图像的均方差和峰值信噪比

signal=0;

fori=1:

r1

forj=1:

c1

signal=signal+(mine_alter1(i,j)-mine_noise1(i,j))^2;

end

end

mse1=(signal/(r1*c1))

psnr1=10*log((255^2)/mse1)

fori=1:

r1

forj=1:

c1

signal=signal+(mine_alter1(i,j)-mine_noise1(i,j))^2;

end

end

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.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1