均值滤波matlab程序代码

均值滤波matlab程序代码
均值滤波matlab程序代码

%均值滤波

%方法一:filter2

clear all;

figure

I=rgb2gray(imread(''));

I=imnoise(I,'salt & pepper',; %加入椒盐噪声

K1=filter2(fspecial('average',3),I)/255; %进行3*3均值滤波

K2=filter2(fspecial('average',5),I)/255; %进行5*5均值滤波

K3=filter2(fspecial('average',7),I)/255; %进行7*7均值滤波

subplot(2,2,1),imshow(I),title('椒盐噪声图'); %显示原图像

subplot(2,2,2),imshow(K1),title('3*3均值滤波图像');

subplot(2,2,3),imshow(K2),title('5*5均值滤波图像');

subplot(2,2,4),imshow(K3),title('7*7均值滤波图像');

%方法二双循环语句,移动平均法

%均值滤波

clc,clear;

figure

f=rgb2gray(imread(''));

subplot(2,2,1),imshow(f),title('原图');

f1=imnoise(f,'gaussian',,;

subplot(2,2,2),imshow(f1),title('高斯噪声图');

k1=floor(3/2)+1;

k2=floor(3/2)+1;

X=f1;

[M,N]=size(X);

uint8 Y=zeros(M,N);

funBox=zeros(3,3);

for i=1:M-3

for j=1:N-3

funBox=X(i:i+3,j:j+3);

s=sum(funBox(:));

h=s/16;

Y(i+k1,j+k2)=h;

end;

end;

Y=Y/255;

subplot(2,2,3),imshow(Y)

,title('均值滤波图');

均值滤波matlab程序代码讲课稿

均值滤波m a t l a b程 序代码

精品文档 %均值滤波 %方法一:filter2 clear all; figure I=rgb2gray(imread('132.jpg')); I=imnoise(I,'salt & pepper',0.1); %加入椒盐噪声 K1=filter2(fspecial('average',3),I)/255; %进行3*3均值滤波K2=filter2(fspecial('average',5),I)/255; %进行5*5均值滤波K3=filter2(fspecial('average',7),I)/255; %进行7*7均值滤波subplot(2,2,1),imshow(I),title('椒盐噪声图'); %显示原图像subplot(2,2,2),imshow(K1),title('3*3均值滤波图像'); subplot(2,2,3),imshow(K2),title('5*5均值滤波图像'); subplot(2,2,4),imshow(K3),title('7*7均值滤波图像'); %方法二双循环语句,移动平均法 %均值滤波 clc,clear; figure f=rgb2gray(imread('132.jpg')); subplot(2,2,1),imshow(f),title('原图'); f1=imnoise(f,'gaussian',0.002,0.0008); subplot(2,2,2),imshow(f1),title('高斯噪声图'); k1=floor(3/2)+1; k2=floor(3/2)+1; X=f1; [M,N]=size(X); uint8 Y=zeros(M,N); funBox=zeros(3,3); for i=1:M-3 for j=1:N-3 funBox=X(i:i+3,j:j+3); s=sum(funBox(:)); 收集于网络,如有侵权请联系管理员删除

中值滤波原理及MATLAB实现.

中值滤波原理及MATLAB实现 摘要:图像是一种重要的信息源,通过图像处理可以帮助人们了解信息的内涵。本文将纯净的图像加入椒盐噪声,然后采用中值滤波的方法对其进行去噪。中值滤波是一种常用的非线性信号处理技术,在图像处理中,它对滤除脉冲干扰噪声最为有效。文章阐述了中值滤波的原理、算法以及在图像处理中的应用。MATLAB是一种高效的工程计算语言,在数据处理、图像处理、神经网络、小波分析等方面都有广泛的应用。 关键词:图像,中值滤波,去噪,MATLAB 1. 引言 20世纪20年代,图像处理首次得到应用。上个世纪60年代中期,随着计算机科学的发展和计算机的普及,图像处理得到广泛的应用。60年代末期,图像处理技术不断完善,逐渐成为一个新兴的学科。图像处理中输入的是质量低的图像,输出的是改善质量后的图像。 为了改善图像质量,从图像中提取有效信息,必须对图像进行去噪预处理。根据噪声频谱分布的规律和统计特征以及图像的特点,出现了多种多样的去噪方法。经典的去噪方法有:空域合成法,频域合成法和最优合成法等,与之适应的出现了许多应用方法,如均值滤波器,中值滤波器,低通滤波器,维纳滤波器,最小失真法等。这些方法的广泛应用,促进数字信号处理的极大发展,显著提高了图像质量。 2. 中值滤波 在图像滤波中,常用的方法是线性滤波技术和非线性滤波技术,线性滤波以其完美的理论基础,数学处理简单、易于采用和硬件实现等优点,一直在图像滤波领域中占有重要的地位。线性滤波对加性高斯噪声有较好的平滑作用,但对脉冲信号和其它形式的高频分量抑制效果较差,且模糊信号边缘。非线性滤波是基于对输入信号序列的一种非线性投影关系,常把某一特定的噪声近似为零而保留信号的重要特征,一定程度上克服线性滤波器的不足,非线性滤波早期运用较多的是中值滤波器,其应用于多维信号处理时,对窄脉冲信号具有良好的抑制能力,但

基于MATLAB的带噪图像的高斯滤波

基于MATLAB的带噪图像的高斯滤波 摘要:图像常常被强度随机信号(也称为噪声)所污染.一些常见的噪声有椒盐(Salt & Pepper)噪声、脉冲噪声、高斯噪声等.椒盐噪声含有随机出现的黑白强度值.而脉冲噪声则只含有随机的白强度值(正脉冲噪声)或黑强度值(负脉冲噪声).与前两者不同,高斯噪声含有强度服从高斯或正态分布的噪声.研究滤波就是为了消除噪声干扰。图像滤波总体上讲包括空域滤波和频域滤波。频率滤波需要先进行傅立叶变换至频域处理然后再反变换回空间域还原图像,空域滤波是直接对图像的数据做空间变换达到滤波的目的。它是一种邻域运算,即输出图像中任何像素的值都是通过采用一定的算法,根据输入图像中对用像素周围一定邻域内像素的值得来的。如果输出像素是输入像素邻域像素的线性组合则称为线性滤波(例如最常见的均值滤波和高斯滤波),否则为非线性滤波(中值滤波、边缘保持滤波等)。线性平滑滤波器去除高斯噪声的效果很好,且在大多数情况下,对其它类型的噪声也有很好的效果。线性滤波器使用连续窗函数内像素加权和来实现滤波。特别典型的是,同一模式的权重因子可以作用在每一个窗口内,也就意味着线性滤波器是空间不变的,这样就可以使用卷积模板来实现滤波。如果图像的不同部分使用不同的滤波权重因子,且仍然可以用滤波器完成加权运算,那么线性滤波器就是空间可变的。任何不是像素加权运算的滤波器都属于非线性滤波器.非线性滤波器也可以是空间不变的,也就是说,在图像的任何位置上可以进行相同的运算而不考虑图像位置或空间的变化。 关键词:图像,高斯滤波,去噪,MATLAB 1.引言 20世纪20年代,图像处理首次得到应用。上个世纪60年代中期,随着计算机科学的发展和计算机的普及,图像处理得到广泛的应用。60年代末期,图像处理技术不断完善,逐渐成为一个新兴的学科。图像处理中输入的是质量低的图像,输出的是改善质量后的图像。为了改善图像质量,从图像中提取有效信息,必须对图像进行去噪预处理。根据噪声频谱分布的规律和统计特征以及图像的特点,出现了多种多样的去噪方法。经典的去噪方法有:空域合成法,频域合成法和最优

中值和均值滤波论文(附代码)

基于MATLAB 的带噪图像的中值和均值滤波 摘要:图像是一种重要的信息源,通过图像处理可以帮助人们了解信息的内涵。本文将纯净的图像加入椒盐噪声,然后采用中值和均值滤波的方法对其进行去噪。在图像处理中,中值和均值滤波对滤除脉冲干扰噪声都很有效。文章阐述了中值和均值滤波的原理、算法以及在图像处理中的应用。MATLAB 是一种高效的工程计算语言,在数据处理、图像处理、神经网络、小波分析等方面都有广泛的应用。 关键词:图像,中值滤波,均值滤波,去噪,MATLAB 1. 引言 20世纪20年代,图像处理首次得到应用。上个世纪60年代中期,随着计算机科学的发展和计算机的普及,图像处理得到广泛的应用。60年代末期,图像处理技术不断完善,逐渐成为一个新兴的学科。图像处理中输入的是质量低的图像,输出的是改善质量后的图像。 为了改善图像质量,从图像中提取有效信息,必须对图像进行去噪预处理。根据噪声频谱分布的规律和统计特征以及图像的特点,出现了多种多样的去噪方法。经典的去噪方法有:空域合成法,频域合成法和最优合成法等,与之适应的出现了许多应用方法,如均值滤波器,中值滤波器,低通滤波器,维纳滤波器,最小失真法等。这些方法的广泛应用,促进数字信号处理的极大发展,显著提高了图像质量。 2. 中值滤波 中值滤波是一种典型的低通滤波器,属于非线性滤波技术,它的目的是保护图像边缘的同时去除噪声。所谓中值滤波,是指把以某点(x,y )为中心的小窗口内的所有象素的灰度按从大到小的顺序排列,若窗口中的象素为奇数个,则将中间值作为(x ,y)处的灰度值。若窗口中的象素为偶数个,则取两个中间值的平均值作为(x ,y)处的灰度值。中值滤波对去除椒盐噪声很有效。中值滤波器的缺点是对所有象素点采用一致的处理,在滤除噪声的同时有可能改变真正象素点的值,引入误差,损坏图像的边缘和细节。该算法对高斯噪声和均匀分布噪声就束手无策。 设有一个一维序列1f ,2f ,…,n f ,取窗口长度为m(m 为奇数),对此序列

matLab 自编的 均值滤波、中值滤波、高斯滤波 图像处理函数

matLab 自编的均值滤波、中值滤波、高斯滤波图像处理函数(转) 虽然matlab里面有这些函数,但是要求自己编写,计算机视觉上有这个实验,是别人编写的。别人到网上找了半天才零散的找到一些碎片,整理以后发上来的! MatLab自编的均值滤波、中值滤波、高斯滤波图像处理函数。 %自编的均值滤波函数。x是需要滤波的图像,n是模板大小(即n×n) function d=avefilt(x,n) a(1:n,1:n)=1; %a即n×n模板,元素全是1 p=size(x); %输入图像是p×q的,且p>n,q>n x1=double(x); x2=x1; %A(a:b,c:d)表示A矩阵的第a到b行,第c到d列的所有元素 for i=1:p(1)-n+1 for j=1:p(2)-n+1 c=x1(i:i+(n-1),j:j+(n-1)).*a; %取出x1中从(i,j)开始的n行n列元素与模板相乘 s=sum(sum(c)); %求c矩阵(即模板)中各元素之和 x2(i+(n-1)/2,j+(n-1)/2)=s/(n*n); %将模板各元素的均值赋给模板中心位置的元素end end %未被赋值的元素取原值 d=uint8(x2); %自编的中值滤波函数。x是需要滤波的图像,n是模板大小(即n×n) function d=midfilt(x,n) p=size(x); %输入图像是p×q的,且p>n,q>n x1=double(x); x2=x1; for i=1:p(1)-n+1 for j=1:p(2)-n+1 c=x1(i:i+(n-1),j:j+(n-1)); %取出x1中从(i,j)开始的n行n列元素,即模板(n×n的) e=c(1,:); %是c矩阵的第一行 for u=2:n e=[e,c(u,:)]; %将c矩阵变为一个行矩阵 end mm=median(e); %mm是中值 x2(i+(n-1)/2,j+(n-1)/2)=mm; %将模板各元素的中值赋给模板中心位置的元素end end %未被赋值的元素取原值 d=uint8(x2); %自编的高斯滤波函数,S是需要滤波的图象,n是均值,k是方差 function d=gaussfilt(k,n,s) Img = double(s); n1=floor((n+1)/2);%计算图象中心 for i=1:n

基于MATLAB的图像平滑算法实现及应用

目录 1.3 图像噪声 一幅图像在获取和传输等过程中,会受到各种各样噪声的干扰,其主要来源有三:一为在光电、电磁转换过程中引入的人为噪声;二为大气层电(磁)暴、闪电、电压、浪涌等引起的强脉冲性冲激噪声的干扰;三为自然起伏性噪声,由物理量的不连续性或粒子性所引起,这类噪声又可分成热噪声、散粒噪声等。一般在图像处理技术中常见的噪声有:加性噪声、乘性噪声、量化噪声、“盐和胡椒”噪声等。下面介绍两种主要的噪声。 1、高斯噪声 这种噪声主要来源于电子电路噪声和低照明度或高温 带来的传感器噪声,也称为正态噪声,是在实践中经常用到的噪声模型。高斯随机变量z 的概率密度函数(P D F )由下式给出: }2/)(ex p{2/1)(22σμσπ--=z z p 其中, z 表示图像像元的灰度值;μ表示z 的期望;σ表示z 的标准差。 2、椒盐噪声 主要来源于成像过程中的短暂停留和数据传输中产生 的错误。其P D F 为: ?????===其他0)(b z pb a z pa z p 如果b > a , 灰度值b 在图像中显示为一亮点,a 值显

示为一暗点。如果P a和图像均不为零,在图像上的表现类似于随机分布图像上的胡椒和盐粉微粒,因此称为椒盐噪声。当P a为零时,表现为“盐”噪声;当P b为零时,表现为“胡椒”噪声。 图像中的噪声往往是和信号交织在一起的尤其是乘性 噪声,如果平滑不当,就会使图像本身的细节如边缘轮廓‘线条等模糊不清,从而使图像质量降低。

第二章、图像平滑方法 2.1 空域低通滤波 将空间域模板用于图像处理,通常称为空间滤波,而空间域模板称为空间滤波器。空间域滤波按线性和非线性特点有:线性、非线性平滑波器。 线性平滑滤波器包括领域平均法(均值滤波器),非线 性平滑滤波器有中值滤波器。 2.1.1 均值滤波器 对一些图像进行线性滤波可以去除图像中某些类型的噪声,如采用邻域平均法的均值滤波器就非常适用于去除通过扫描得到的图像中的颗粒噪声。邻域平均法是空间域平滑技术。这种方法的基本思想是,在图像空间,假定有一副N ×N 个像素的原始图像f (x ,y ),用领域内几个像素的平均值去代替图像中的每一个像素点值的操作。经过平滑处理后得到一副图像 g (x ,y ), 其表达式如下: ∑∈=s n m n m f M y x g ),(),(/1),( 式中: x ,y =0,1,2,…,N -1;s 为(x ,y )点领域中点的坐标的集合,但不包括(x ,y )点;M 为集合内坐标点的总数。 领域平均法有力地抑制了噪声,但随着领域的增大,图像的模糊程度也愈加严重。为了尽可能地减少模糊失真,也可采用阈值法减少由于领域平均而产生的模糊效应。其公式如下: ?????>-=∑∑∈∈其他),(),(/1),(),(/1),(),(),(y x f T n m f M y x f n m f M y x g s n m s n m 式中:T 为规定的非负阈值。

matlab图像去噪算法设计(精)

数字图像去噪典型算法及matlab实现 希望得到大家的指点和帮助 图像去噪是数字图像处理中的重要环节和步骤。去噪效果的好坏直接影响到后续的图像处理工作如图像分割、边缘检测等。图像信号在产生、传输过程中都可能会受到噪声的污染,一般数字图像系统中的常见噪声主要有:高斯噪声(主要由阻性元器件内部产生)、椒盐噪声(主要是图像切割引起的黑图像上的白点噪声或光电转换过程中产生的泊松噪声)等; 目前比较经典的图像去噪算法主要有以下三种: 均值滤波算法:也称线性滤波,主要思想为邻域平均法,即用几个像素灰度的平均值来代替每个像素的灰度。有效抑制加性噪声,但容易引起图像模糊,可以对其进行改进,主要避开对景物边缘的平滑处理。 中值滤波:基于排序统计理论的一种能有效抑制噪声的非线性平滑滤波信号处理技术。中值滤波的特点即是首先确定一个以某个像素为中心点的邻域,一般为方形邻域,也可以为圆形、十字形等等,然后将邻域中各像素的灰度值排序,取其中间值作为中心像素灰度的新值,这里领域被称为窗口,当窗口移动时,利用中值滤波可以对图像进行平滑处理。其算法简单,时间复杂度低,但其对点、线和尖顶多的图像不宜采用中值滤波。很容易自适应化。 Wiener维纳滤波:使原始图像和其恢复图像之间的均方误差最小的复原方法,是一种自适应滤波器,根据局部方差来调整滤波器效果。对于去除高斯噪声效果明显。实验一:均值滤波对高斯噪声的效果 I=imread('C:\Documents and Settings\Administrator\桌面\1.gif');%读取图像 J=imnoise(I,'gaussian',0,0.005);%加入均值为0,方差为0.005的高斯噪声 subplot(2,3,1);imshow(I); title('原始图像'); subplot(2,3,2); imshow(J); title('加入高斯噪声之后的图像'); %采用MATLAB中的函数filter2对受噪声干扰的图像进行均值滤波 K1=filter2(fspecial('average',3),J)/255; %模板尺寸为3 K2=filter2(fspecial('average',5),J)/255;% 模板尺寸为5 K3=filter2(fspecial('average',7),J)/255; %模板尺寸为7 K4= filter2(fspecial('average',9),J)/255; %模板尺寸为9 subplot(2,3,3);imshow(K1); title('改进后的图像1'); subplot(2,3,4); imshow(K2); title('改进后的图像2');

数字图像去噪典型算法及matlab实现

图像去噪是数字图像处理中的重要环节和步骤。去噪效果的好坏直接影响到后续的图像处理工作如图像分割、边缘检测等。图像信号在产生、传输过程中都可能会受到噪声的污染,一般数字图像系统中的常见噪声主要有:高斯噪声(主要由阻性元器件内部产生)、椒盐噪声(主要是图像切割引起的黑图像上的白点噪声或光电转换过程中产生的泊松噪声)等; 目前比较经典的图像去噪算法主要有以下三种: 均值滤波算法:也称线性滤波,主要思想为邻域平均法,即用几个像素灰度的平均值来代替每个像素的灰度。有效抑制加性噪声,但容易引起图像模糊,可以对其进行改进,主要避开对景物边缘的平滑处理。 中值滤波:基于排序统计理论的一种能有效抑制噪声的非线性平滑滤波信号处理技术。中值滤波的特点即是首先确定一个以某个像素为中心点的邻域,一般为方形邻域,也可以为圆形、十字形等等,然后将邻域中各像素的灰度值排序,取其中间值作为中心像素灰度的新值,这里领域被称为窗口,当窗口移动时,利用中值滤波可以对图像进行平滑处理。其算法简单,时间复杂度低,但其对点、线和尖顶多的图像不宜采用中值滤波。很容易自适应化。 Wiener维纳滤波:使原始图像和其恢复图像之间的均方误差最小的复原方法,是一种自适应滤波器,根据局部方差来调整滤波器效果。对于去除高斯噪声效果明显。 实验一:均值滤波对高斯噪声的效果 代码 I=imread('C:\Documents and Settings\Administrator\桌面\1.gif');%读取图像 J=imnoise(I,'gaussian',0,0.005);%加入均值为0,方差为0.005的高斯噪声 subplot(2,3,1);imshow(I); title('原始图像'); subplot(2,3,2); imshow(J); title('加入高斯噪声之后的图像'); %采用MATLAB中的函数filter2对受噪声干扰的图像进行均值滤波 K1=filter2(fspecial('average',3),J)/255; %模板尺寸为3 K2=filter2(fspecial('average',5),J)/255;% 模板尺寸为5

数字图像处理邻域平均法滤波实验报告matlab实现

数字图像处理 实验报告 实验三邻域平均法滤波 学号 姓名

实验三 邻域平均法滤波 一、实验内容 选取噪声较明显的图像,分别采用3*3、5*5、7*7的模板进行邻域平均法滤波,并比较滤波效果。 二、实验步骤 1、 设计思想或者流程图。 邻域平均法的思想是用像素及其指定邻域内像素的平均值或加权平均值作为该像素的新值,以便去除突变的像素点,从而滤除一定的噪声。邻域平均法的数学含义可用下式表示: ∑∑== ? ?? ??=mn i i mn i i i w z w y x g 11),( (1) 上式中:i z 是以),(y x 为中心的邻域像素值;i w 是对每个邻域像素的加权系 数或模板系数; m n 是加权系数的个数或称为模板大小。邻域平均法中常用的模 板是: ??????????*=11111111191Box T (2) 为了解决邻域平均法造成的图像模糊问题,采用阈值法(又叫做超限邻域平均法,如果某个像素的灰度值大于其邻域像素的平均值,且达到一定水平,则判断该像素为噪声,继而用邻域像素的均值取代这一像素值;否则,认为该像素不是噪声点,不予取代),给定阈值0T : ???≥-<-=00),(),(),(),(),(),(),(T y x g y x f y x g T y x g y x f y x f y x h (3) (3)式中,),(y x f 是原始含噪声图像,),(y x g 是由(1)式计算的平均值,),(y x h 滤波后的像素值。 2、 源程序并附上注释。 3、 A=imread('1.jpg'); B=rgb2gray(A); figure; imshow(B); title('原始图象');

图像处理——均值滤波+中值滤波(Matlab)讲课讲稿

题目:均值滤波和中值滤波 在自己的证件照中加入椒盐噪声、高斯白噪声。 分别用3*3、5*5、7*7的均值滤波器和中值滤波器进行滤波。 处理过程 1.用imnoise函数在图像中分别加入椒盐噪声和高斯白噪声; 2.均值滤波:用fspecial函数创建各模板大小的均值滤波器,并用imfilter函数进行 滤波。 中值滤波:直接用matlab提供的medfilt2中值滤波器进行滤波即可。 处理结果 程序清单 (1)均值滤波 rgb=imread('photo.jpg'); J1=imnoise(rgb,'salt & pepper',0.02); J2=imnoise(J1,'gaussian',0,0.01); h1=fspecial('average',[3,3]); h2=fspecial('average',[5,5]); h3=fspecial('average',[7,7]); rgb1=imfilter(J2,h1); rgb2=imfilter(J2,h2); rgb3=imfilter(J2,h3); figure; subplot(2,3,1);imshow(rgb) title('原图像'); subplot(2,3,2);imshow(J2) title('加入噪声后的图像'); subplot(2,3,4);imshow(rgb1) title('3*3均值滤波图像'); subplot(2,3,5);imshow(rgb2) title('5*5均值滤波图像'); subplot(2,3,6);imshow(rgb3) title('7*7均值滤波图像'); (2)中值滤波 rgb=imread('photo.jpg'); J1=imnoise(rgb,'salt & pepper',0.02); J2=imnoise(J1,'gaussian',0,0.01); J3=rgb2gray(J2); rgb1=medfilt2(J3,[3 3]);

实验三--均值滤波和中值滤波

实验三均值滤波和中值滤波 一、实验目的 进一步了解MatLab软件/语言,学会使用MatLab对图像作滤波处理,使学生有机会掌握滤波算法,体会滤波效果。 了解几种不同滤波方式的使用和使用的场合,培养处理实际图像的能力,并为课堂教学提供配套的实践机会。 二、实验要求 (1)学生应当完成对于给定图像+噪声,使用平均滤波器、中值滤波器对不同强度的高斯噪声和椒盐噪声,进行滤波处理;能够正确地评价处理的结果;能够从理论上作出合理的解释。 (2)利用MATLAB软件实现空域滤波的程序: I=imread('electric.tif'); J = imnoise(I,'gauss',0.02); %添加高斯噪声 J = imnoise(I,'salt & pepper',0.02); (注意空格) %添加椒盐噪声 ave1=fspecial('average',3); %产生3×3的均值模版 ave2=fspecial('average',5); %产生5×5的均值模版 K = filter2(ave1,J)/255; %均值滤波3×3 L = filter2(ave2,J)/255; %均值滤波5×5 M = medfilt2(J,[3 3]); %中值滤波3×3模板 N = medfilt2(J,[4 4]); %中值滤波4×4模板 imshow(I); figure,imshow(J); figure,imshow(K); figure,imshow(L); figure,imshow(M); figure,imshow(N); 三、实验设备与软件 (1) IBM-PC计算机系统 (2) MatLab软件/语言包括图像处理工具箱(Image Processing Toolbox) (3) 实验所需要的图片 四、实验内容与步骤 a) 调入并显示原始图像Sample2-1.jpg 。 b) 利用imnoise 命令在图像Sample2-1.jpg 上加入高斯(gaussian) 噪声 c)利用预定义函数fspecial 命令产生平均(average)滤波器

均值滤波matlab程序代码

%均值滤波 %方法一:filter2 clear all; figure I=rgb2gray(imread('')); I=imnoise(I,'salt & pepper',; %加入椒盐噪声 K1=filter2(fspecial('average',3),I)/255; %进行3*3均值滤波 K2=filter2(fspecial('average',5),I)/255; %进行5*5均值滤波 K3=filter2(fspecial('average',7),I)/255; %进行7*7均值滤波 subplot(2,2,1),imshow(I),title('椒盐噪声图'); %显示原图像 subplot(2,2,2),imshow(K1),title('3*3均值滤波图像'); subplot(2,2,3),imshow(K2),title('5*5均值滤波图像'); subplot(2,2,4),imshow(K3),title('7*7均值滤波图像'); %方法二双循环语句,移动平均法 %均值滤波 clc,clear; figure f=rgb2gray(imread('')); subplot(2,2,1),imshow(f),title('原图'); f1=imnoise(f,'gaussian',,; subplot(2,2,2),imshow(f1),title('高斯噪声图'); k1=floor(3/2)+1; k2=floor(3/2)+1; X=f1; [M,N]=size(X); uint8 Y=zeros(M,N); funBox=zeros(3,3); for i=1:M-3 for j=1:N-3 funBox=X(i:i+3,j:j+3); s=sum(funBox(:)); h=s/16; Y(i+k1,j+k2)=h; end; end; Y=Y/255; subplot(2,2,3),imshow(Y)

图像处理——图像滤波(Matlab)

图像滤波 滤波是一种应用广泛的图像处理技术,可以通过滤波来强调或删除图像的某种特征。滤波是一种领域操作,即处理后的图像每个像素值是运来像素周围的颜色值经过某些计算得到的。通过不同滤波函数对同一图像滤波,效果迥异。 1.滤波函数imfilter Matlab滤波函数imfilter是基于领域滑动设计实现的,其调用格式为B=IMFILTER(A,H,OPTION),参数OPTION可以选择填补参数’symmetric’、’replicate’、’circular’。 首先在原始图像上加上一些噪声,然后对含有噪声的图像进行滤波。分别对下面的这个原始图像加上椒盐噪声、高斯白噪声、泊松噪声、乘法噪声。 原图像 Matlab函数文件如下: I=imread('1.jpg'); J1=imnoise(I,'salt & pepper',0.02); J2=imnoise(I,'gaussian',0,0.01); J3=imnoise(I,'poisson'); J4=imnoise(I,'speckle',0.04);

figure; subplot(221),imshow(J1); subplot(222),imshow(J2); subplot(223),imshow(J3); subplot(224),imshow(J4); 图1.加入椒盐噪声的图像图2. 加入高斯白噪声的图像 图3. 加入泊松噪声的图像图4.加入乘法噪声的图像下面对含有椒盐噪声和高斯白噪声的图像用imfilter进行滤波。 Matlab函数文件如下: rgb=imread('1.jpg'); h=ones(5,5)/25; rgb1=imfilter(rgb,h);

matlab信号与系统课程设计---近均值滤波

《信号与系统》 课程设计报告 论文题目:更普适的快速自适应图像滤波算法 -近均值滤波 姓名: 班级: 学号: 指导老师: 提交日期: 学习过程 一、课程设计目的 本次课程设计的目的在于:结合均值和中值的优势,提出新的“中

庸”之道——“近均值”,实现快速计算,适应多种噪声类型,提高去噪质量。本次课程设计,提高了我们分析问题和解决问题的能力,还能培养一定的科研能力。 二、设计原理 1.均值滤波 均值滤波原理:均值滤波是典型的线性滤波算法,它是指在图像上对目标像素给一个模板,该模板包括了其周围的临近像素(以目标象素为中心的周围8个象素,构成一个滤波模板,即去掉目标象素本身)。再用模板中的全体像素的平均值来代替原来像素值。均值滤波也称为线性滤波,其采用的主要方法为领域平均法。线性滤波的基本原理是用均值代替原图像中的各个像素值,即对待处理的当前像素点(x,y),选择一个模板,该模板由其近邻的若干像素组成,求模板中所有像素的均值,再把该均值赋予当前像素点(x,y),作为处理后图像在该 点上的灰度值u(x,y),即u(x, y)=1/m ∑f(x,y)①m为该 模板中包含当前像素在内的像素总 个数。(实现算法如右图所示) 2.中值滤波 中值滤波法是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有象素点灰度值的中值。中值滤波是基于

排序统计理论的一种能有效抑制噪声的非线性信号处理技术,中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点。在数字信号处理一维信号中,方法是用某种结构的一维滑动模板,将板内像素按照像素值的大小进行排序,生成单调上升(或下降)的为一维数据序列。一维中值滤波输出为g(x)=med{f(x-k),(k,∈W)} ,其中,f(x),g(x)分别为原始信号和处理后信号。 3.“近均值”的计算规则 对剩余数据计算均值Average 后,按照既定的规则,可得到“近均值”Near_Aver。本文提出了三种计算“近均值”的规则。 (1)规则1:直接以剩余数据量的均值作为“近均值”,即Near_Aver=Average。 (2)规则2:将剩余数据划分为小于等于Average和大于Average 的两个子集,并分别在这两个子集中找到最接近Average 的“近均值”Left_Near_Aver 和Right_Near_Aver 值。此时,中心像素属于哪个子集,就用哪个子集的“近均值”来代替。 (3)规则3:类似于规则2,只是候选的“近均值”分别变为(Left_Near_Aver + Average)/2 和(Right_Near_Aver+Average)/2。与规则2 相比,本规则的“近均值”更接近Average。 4.计算规则的时间复杂性分析

基于Matlab的图像去噪算法仿真

基于Matlab的图像去噪算法仿真 在信息化的社会里,图像在信息传播中所起的作用越来越大。所以,消除在图像采集和传输过程中而产生的噪声,保证图像受污染度最小,成了数字图像处理领域里的重要部分。 本文主要研究分析邻域平均法、中值滤波法、维纳滤波法及模糊小波变换法的图像去噪算法。首先介绍图像处理应用时的常用函数及其用法;其次详细阐述了四种去噪算法原理及特点;最后运用Matlab软件对一张含噪图片(含高斯噪声或椒盐噪声)进行仿真去噪,通过分析仿真结果得出: 一.均值滤波是典型的线性滤波,对高斯噪声抑制是比较好的; 二.中值滤波是常用的非线性滤波方法,对椒盐噪声特别有效; 三.维纳滤波对高斯噪声有明显的抑制作用; 四.对小波系数进行阈值处理可以在小波变换域中去除低幅值的噪声和不期望的信号。 本论文主要是从两方面展开,首先是图像去噪算法:简要说明了图像噪声的概念及分类,详细阐述了邻域平均法、中值滤波法、维纳滤波法及模糊小波变换法的去噪原理及特点。 其次是基于Matlab的图像去噪算法仿真:根据邻域平均法、中值滤波法、维纳滤波法及模糊小波变换法原理分析,运用Matlab仿真软件编写代码,对一张含噪图片(含高斯噪声或椒盐噪声)进行仿真去噪,并对结果分析讨论,比较几种方法的优缺点。 本论文仿真时选取一张彩色图片“2010-03-09-2.bmp”,并在图片中加入两种噪声:高斯噪声和椒盐噪声。所谓高斯噪声是指它的概率密度函数服从高斯分布的一类噪声。椒盐噪声是由图像传感器、传输信道、解码处理等产生的黑白相间的亮暗点噪声,属于非平稳噪声。本章利用Matlab软件对含噪图像的去噪算法进行仿真,将应用邻域平均法、中值滤波法、维纳滤波法和模糊小波变换法对含有高斯噪声和椒盐噪声图像的去噪效果进行比较,从而得到相应结论。 1.1邻域平均法的仿真 本节选用邻域平均法对含有高斯噪声和椒盐噪声的图片进行去噪,并用Matlab软件仿真。 (1)给图像加入均值为0,方差为0.02的高斯噪声,选择3×3模板去噪Matlab部分代码: j=imnoise(x,'gaussian',0,0.02);

Matlab课程设计数据滤波程序

Matlab综合课程设计报告 设计题目: 专业物联网工程 班级142 学生王明莲 指导教师刘庆 2016 年春季学期

一、总体设计 1.程序的总体设计

二、功能实现 1.(流程图) 三、测试及调试(测试方案、存在的问题及解决方法) 2.详细描述程序编写的步骤及编写过程中出现的问题; 3.详细描述程序测试方案,采用的调试方法及调试手段; 4.详细描述调试中出现的问题、对问题的分析及解决方法。 四、总结 包括但不限于以下内容: 5.对Matlab知识的掌握程度; 6.对程序设计方法(自顶向下、结构化设计)的体会和掌握程度; 7.分析问题和解决问题的能力,并举例说明; 8.建议与意见。

附件:主要源程序代码(需打印) 附件一:一维信号滤波 高斯滤波: %高斯滤波的代码 x=0:2047; a=load('data.txt'); %运行时data.txt文件要放到当前目录(current directory)中 gau=[0.0009 0.0175 0.1295 0.3521 0.3521 0.1295 0.0175 0.0009];%标准差为1时的高斯函数一维模板,如果标准差不为1,则要修改模板 y=conv(a,gau); y=y(1:length(y)-length(gau)+1); figure; subplot(1,2,1);plot(x,a); xlabel('高斯滤波前的序列'); subplot(1,2,2);plot(x,y); xlabel('高斯滤波后的序列'); % 高斯函数的一维模板可以由这个函数得到:fspecial('gaussian', [1 n], sigma) % 当标准差sigma是某一固定数字时,存在一个N,对于任意的n>=N,模板都一样 中值滤波: function y=yiweimid(x,N) [m,n]=size(x); xin = zeros(1,n); for i=1:1:n-N q = median(x(1,i+N)); xin(1,i+N)=q; end y=xin; End %中值滤波的代码: x=0:2047; a=load('data.txt'); %运行时data.txt文件要放到当前目录(current directory)中 n=5; % n为模板长度,值可以改变 y = medfilt1(a,n); figure; subplot(1,2,1);plot(x,a); xlabel('中值滤波前的序列');

实验三均值滤波和中值滤波

实验三 均值滤波和中值滤波 实验目的 进一步了解 MatLab 软件 /语言,学会使用 MatLab 对图像作滤波处理,使学生有机会掌握滤波 算法,体会滤波效果。 了解几种不同滤波方式的使用和使用的场合,培养处理实际图像的能力,并为课堂教学提供配 套的实践机会。 (1) 学生应当完成对于给定图像 +噪声,使用平均滤波器、中值滤波器对不同强度的高斯噪声和 椒盐噪声,进行滤波处理;能够正确地评价处理的结果;能够从理论上作出合理的解释。 (2) 利用 MATLAB 软件实现空域滤波的程序: I=imread('electric.tif'); J = imnoise(I,'gauss',0.02); J = imnoise(I,'salt & pepper',0.02); (注意空格 ) %添加椒盐噪声 figure,imshow(K) ; figure,imshow(L) ; figure,imshow(M) ; figure,imshow(N) ; 三、实验设备与软件 (1) IBM-PC 计算机系统 (2) MatLab 软件 /语言包括图像处理工具箱 (Image Processing Toolbox) (3) 实验所需要的图片 实验要求 %添加高斯噪声 ave1=fspecial('average', 3); ave2=fspecial('average', 5); K = filter2(ave1,J)/255; L = filter2(ave2,J)/255; M = medfilt2(J,[3 3]); N = medfilt2(J,[4 4]); %产生3X3的均值模版 %产生5X5的均值模版 %均值滤波 3X3 %均值滤波 5X5 %中值滤波 3X3 模板 % 中值滤波 4X4 模板

均值滤波与matlab编程

均值滤波与matlab编程 MatLab自编的均值滤波、中值滤波、高斯滤波图像处理函数。 %自编的均值滤波函数。x是需要滤波的图像,n是模板大小(即n×n) function d=avefilt(x,n) a(1:n,1:n)=1; %a即n×n模板,元素全是1 p=size(x); %输入图像是p×q的,且p>n,q>n x1=double(x); x2=x1; %A(a:b,c:d)表示A矩阵的第a到b行,第c到d列的所有元素 fori=1:p(1)-n+1 for j=1:p(2)-n+1 c=x1(i:i+(n-1),j:j+(n-1)).*a; %取出x1中从(i,j)开始的n行n列元素与模板相乘 s=sum(sum(c)); %求c矩阵(即模板)中各元素之和 x2(i+(n-1)/2,j+(n-1)/2)=s/(n*n); %将模板各元素的均值赋给模板中心位置的元素end end %未被赋值的元素取原值 d=uint8(x2); %自编的中值滤波函数。x是需要滤波的图像,n是模板大小(即n×n) function d=midfilt(x,n) p=size(x); %输入图像是p×q的,且p>n,q>n x1=double(x); x2=x1; fori=1:p(1)-n+1 for j=1:p(2)-n+1 c=x1(i:i+(n-1),j:j+(n-1)); %取出x1中从(i,j)开始的n行n列元素,即模板(n×n的) e=c(1,:); %是c矩阵的第一行 for u=2:n e=[e,c(u,:)]; %将c矩阵变为一个行矩阵 end mm=median(e); %mm是中值 x2(i+(n-1)/2,j+(n-1)/2)=mm; %将模板各元素的中值赋给模板中心位置的元素end end %未被赋值的元素取原值 d=uint8(x2); %自编的高斯滤波函数,S是需要滤波的图象,n是均值,k是方差 function d=gaussfilt(k,n,s) Img = double(s); n1=floor((n+1)/2);%计算图象中心 fori=1:n for j=1:n b(i,j) =exp(-((i-n1)^2+(j-n1)^2)/(4*k))/(4*pi*k);

均值滤波matlab程序代码

%均值滤波 %方法一:filter2 clear all; figure I=rgb2gray(imread(’132。jpg’)); I=imnoise(I,’salt & pepper',0。1); %加入椒盐噪声 K1=filter2(fspecial(’average',3),I)/255; %进行3*3均值滤波 K2=filter2(fspecial('average’,5),I)/255; %进行5*5均值滤波 K3=filter2(fspecial(’average’,7),I)/255; %进行7*7均值滤波 subplot(2,2,1),imshow(I),title('椒盐噪声图’);%显示原图像 subplot(2,2,2),imshow(K1),title(’3*3均值滤波图像');subplot(2,2,3),imshow(K2),title(’5*5均值滤波图像');subplot(2,2,4),imshow(K3),title(’7*7均值滤波图像’); %方法二双循环语句,移动平均法 %均值滤波 clc,clear; figure f=rgb2gray(imread(’132。jpg’)); subplot(2,2,1),imshow(f),title('原图'); f1=imnoise(f,’gaussian’,0。002,0。0008); subplot(2,2,2),imshow(f1),title('高斯噪声图’); k1=floor(3/2)+1; k2=floor(3/2)+1; X=f1; [M,N]=size(X);

uint8 Y=zeros(M,N); funBox=zeros(3,3); for i=1:M—3 for j=1:N—3 funBox=X(i:i+3,j:j+3); s=sum(funBox(:)); h=s/16; Y(i+k1,j+k2)=h; end; end; Y=Y/255; subplot(2,2,3),imshow(Y),title('均值滤波图’);

matlab图像去噪算法设计(精)

数字图像去噪典型算法及matlab实现 希望得到大家的指点和帮助 图像去噪是数字图像处理中的重要环节和步骤。去噪效果的好坏直接影响到后续的图像处理工作如图像分割、边缘检测等。图像信号在产生、传输过程中都可能会受到噪声的污染,一般数字图像系统中的常见噪声主要有:高斯噪声(主要由阻性元器件内部产生)、椒盐噪声(主要是图像切割引起的黑图像上的白点噪声或光电转换过程中产生的泊松噪声)等; 目前比较经典的图像去噪算法主要有以下三种: 均值滤波算法:也称线性滤波,主要思想为邻域平均法,即用几个像素灰度的平均值来代替每个像素的灰度。有效抑制加性噪声,但容易引起图像模糊,可以对其进行改进,主要避开对景物边缘的平滑处理。 中值滤波:基于排序统计理论的一种能有效抑制噪声的非线性平滑滤波信号处理技术。中值滤波的特点即是首先确定一个以某个像素为中心点的邻域,一般为方形邻域,也可以为圆形、十字形等等,然后将邻域中各像素的灰度值排序,取其中间值作为中心像素灰度的新值,这里领域被称为窗口,当窗口移动时,利用中值滤波可以对图像进行平滑处理。其算法简单,时间复杂度低,但其对点、线和尖顶多的图像不宜采用中值滤波。很容易自适应化。 Wiener维纳滤波:使原始图像和其恢复图像之间的均方误差最小的复原方法,是一种自适应滤波器,根据局部方差来调整滤波器效果。对于去除高斯噪声效果明显。实验一:均值滤波对高斯噪声的效果 I=imread('C:\Documents and Settings\Administrator\桌面\1.gif');%读取图像 J=imnoise(I,'gaussian',0,0.005);%加入均值为0,方差为0.005的高斯噪声 subplot(2,3,1);imshow(I); title('原始图像'); subplot(2,3,2); imshow(J); title('加入高斯噪声之后的图像'); %采用MATLAB中的函数filter2对受噪声干扰的图像进行均值滤波 K1=filter2(fspecial('average',3),J)/255; %模板尺寸为3 K2=filter2(fspecial('average',5),J)/255;% 模板尺寸为5 K3=filter2(fspecial('average',7),J)/255;%模板尺寸为7 K4= filter2(fspecial('average',9),J)/255;%模板尺寸为9 subplot(2,3,3);imshow(K1); title('改进后的图像1');

相关主题
相关文档
最新文档