基于卡尔滤波的图像除噪处理_第1页
基于卡尔滤波的图像除噪处理_第2页
基于卡尔滤波的图像除噪处理_第3页
基于卡尔滤波的图像除噪处理_第4页
基于卡尔滤波的图像除噪处理_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于卡尔曼滤波的图像除噪处理摘要:图像在采集和和传输的过程中可能要受到外界的干扰,为了保证图像信息的准确性,除噪就显得尤为重要。本文介绍的就是利用Matlab软件使用卡尔曼滤波进行图像的除噪处理。关键词:图像除噪;Matlab;卡尔曼滤波一、引言目前大多数数字图像系统中,输入图像都是采用先冻结再扫描方式将多维图像变成一维电信号,再对其进行处理、存储、传输等加工变换。最后往往还要再组成多维图像信号,而图像噪声也将同样受到这样的分解和合成。在这些过程中电气系统和外界影响将使得图像噪声的精确分析变得十分复杂。因此,我们需要对图像进行除噪,得到更准确的图像信息。一、Matlab2.1 简介Matlab

2、是美国MathWorks公司推出的数学软件,是一种面向工程和科学计算的交互式计算软件。主要用于算法开发、数据可视化、数据分析、以及数值计算,但是由于Matlab拥有许多的附加工具箱,因此它也可以应用到其他领域,譬如:图像处理、信号检测、音频分析以及金融建模和分析等等。2. 2 Matlab在图像处理中的应用(1) 图像文件格式的读写和显示。MATLAB提供了图像文件的读入函数imread(),用来读取,如:bmp、jpg、hdf等格式的图像文件;图像写出函数为imwrite(),以及图像显示函数image()、imshow()等。(2) 图像处理的基本运算。MATLAB提供了图像的和、差等线性

3、运算,以及卷积、滤波等非线性运算。(3) 图像变换。MATLAB提供了一维和二维离散傅里叶变换(DFT)、快速傅里叶变换(FFT)、离散余弦变换(DCT)以及连续小波变换(CWT)等等。(4) 图像的分析和增强。为了能对图像进行处理,MALTAB针对图像的统计计算提供了校正、中值滤波、直方图均衡、对比度调整以及自适应滤波等。2.3.均方误差(MSE)在相同测量条件下进行的测量称为等精度测量,例如在同样的条件下,用同一个游标卡尺测量铜棒的直径若干次,这就是等精度测量。对于等精度测量来说,还有一种表示误差的方法,就是标准误差。标准误差定义为各测量值的平方值的平方根,故又称为均方误差。设n个测量值的

4、误差为,则这组测量值的标准误差等于:数理统计中均方误差是指参数估计值与参数真值之差平方的期望值,记为MSE。2.4 峰值信噪比PSNR(Peak Signal to Noise Ratio)表示的是到达噪声比率的顶点信号,PSNR一般是用于最大值信号和噪声之间的工程项目。为了衡量经过处理后的图像品质,我们通常会参考PSNR值来认定某个处理程序是否有效,或者说是处理的效果是怎么样的。Peak就是8bits表示法的最大值255,MES指的是Mean Square Error(均方误差,各值相差的n次方的平均值)。PSNR的计算公式如下:I是指原始图像第n个pixel值,P是指处理后的图像第n个pi

5、xel值。PSNR的单位为db,所以PSNR的值越大,就代表失真越少。3、 卡尔曼滤波3.1卡尔曼滤波的特点卡尔曼滤波是用状态空间法描述系统的,有状态方程和量测方程组成。卡尔曼滤波是用一个状态的估计值和最近一个观测数据来估计状态变量的当前值,并以状态变量的估计值的形式给出。卡尔曼滤波具有以下的特点;(1) 算法是递推的;(2) 卡尔曼滤波使用于非平稳过程;(3) 卡尔曼滤波采取的误差准则仍为估计误差的均方值最小。3.2 状态方程和量测方程假设某系统k时刻的状态变量为,状态方程和量测方程可以表示为: 其中,k表示时间,指的是第k步迭代时相应信号的取值;输入信号是一白噪声,输出信号的观测噪声也是一

6、个白噪声;A表示状态变量之间的增益矩阵,表示第k步迭代时,增益矩阵A的取值;C表示状态变量与输出信号之间的增益矩阵,第k步迭代时取值用表示。3.3卡尔曼滤波的递推算法当不考虑观测噪声和输入信号时,状态方程和量测方程为: 由于不考虑观测噪声的影响,输出信号的估计值与实际值是有误差的,用表示: 为了提高状态估计的质量,用输出信号的估计误差来校正状态变量: 其中,为增益矩阵(实质上是一个加权矩阵)。经过校正后的状态变量的估计误差以及其均方差分别用和表示,卡尔曼滤波要求状态变量的估计误差的均方差为最小,而且卡尔曼滤波的关键就是计算出加权矩阵的最佳值。把未经校正的状态变量的估计误差的均方差用表示: 4、

7、 MATLAB仿真与分析4.1 原理 基于MATLAB平台设计卡尔曼滤波器对一张.jpg图片进行除噪处理,先导入一张图片,然后依次给图片加高斯白噪声和椒盐噪声,再利用卡尔曼滤波器除噪。除噪之后利用Matlab输出除噪前后的均方误差和峰值信噪比。源程序:%1.显示原图中分别加入椒盐噪声和高斯白噪声clear;close all;mine = imread('C:UsersyueruiDesktophzw.jpg'); %读取图像show_size = size(mine); %显示图像尺寸mine_noise1 = imnoise(mine,'salt & pep

8、per',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)');

9、%显示加高斯白噪声图像 %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,:,

10、:); %读取加噪图像第一行Y = mine_noise1(1,:,:); mine_alter1 = zeros(r1,c1,m);mine_alter2 = zeros(r2,c2,n);mine_alter1(1,:,:) = X;mine_alter2(1,:,:) = Y;for K = 2:r1 X = A * X; %X(k|k-1) = A X(k-1|k-1) + B U(k) P = A * P * A' + Q; %P(k|k-1) = A P(k-1|k-1) A+ Q Kg = P * H'/(H * P * H' + R);%Kg(k) =

11、P(k|k-1) H / (H P(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) - H X(k|k-1) P = (1 - Kg * H) * P; %P(k|k) =(I - Kg(k) H)P(k|k-1) mine_alter1(K,:,:) = X; %保存像素值endfor K = 2:r2 X = A * Y; %X(k|k-1) = A X(k-1|k-1) + B U(k) P = A * P * A' + Q; %P(k|k-1

12、) = A P(k-1|k-1) A+ Q Kg = P * H'/(H * P * H' + R); %Kg(k) = P(k|k-1) H / (H P(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) - H X(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

13、,1);imshow(mine_alter1);subplot(1,3,2);imshow(mine_alter2); %3.求除噪前后图像的均方差和峰值信噪比signal=0;for i=1:r1 for j=1:c1 signal=signal+(mine_alter1(i,j)-mine_noise1(i,j)2; endend mse1=(signal/(r1*c1)psnr1=10*log(2552)/mse1)for i=1:r1 for j=1:c1 signal=signal+(mine_alter1(i,j)-mine_noise1(i,j)2; endendmse2=(si

14、gnal/(r2*c2)psnr2=10*log(2552)/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程序快速入门

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论