文档库 最新最全的文档下载
当前位置:文档库 › MATLAB数字图像均值和中值滤波

MATLAB数字图像均值和中值滤波

MATLAB数字图像均值和中值滤波
MATLAB数字图像均值和中值滤波

实验二数字图像的空间域滤波

一、实验目的

1、理解图像空间域滤波的原理;

2、掌握图像均值滤波、中值滤波的原理与实现方法;

3、掌握上述方法的改进方法。

二、实验原理

均值滤波的主要步骤为:

(1)将模板在途中漫游,并将模板中心与途中某个象素位置重合;(2)将模板上系数与模板下对应象素相乘;

(3)将所有乘积相加;

(4)将和(模板的输出响应)赋给途中对应模板中心位置的象素。

中值滤波的主要步骤为:

(1)将模板在途中漫游,并将模板中心与途中某个象素位置重合;(2)读取模板下各对应象素的灰度值;

(3)将这些灰度值从小到大排成1列;

(4)找出这些值里排在中间的1个;

(5)将这个中间值赋给对应模板中心位置的象素。

三、实验内容

基本要求:

1、自己编程实现图像的均值滤波;

2、自己编程实现图像的中值滤波;

3、利用matlab图像处理工具箱中的函数实现图像的上述处理;

扩展要求:

4、实现一种图像加权中值滤波或加权均值滤波;

四、实验步骤

1、编程实现图像的均值滤波

程序代码:

运行程序得到如下结果:

2、编程实现图像的中值滤波程序代码:

运行程序后得到如下结果:

3、实现一种图像加权中值滤波或加权均值滤波设计x模板为:

运行程序可得均值滤波后的结果:

运行程序可得中值滤波后的结果:

五、实验结果分析

从实验结果可以看出,中值滤波较均值滤波效果好些,并且滤波与所选的模板有关,若选择权值相同(本实验为0.1/9)相对不同权值的效果好些。模板的不同对均值滤波的影响较大。

均值滤波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的常用滤波算法研究(含代码)讲解

毕业设计(论文) UNDERGRADUATE PROJECT (THESIS) 题目: 冲击测试常用滤波算法研究 学院 专业 学号 学生姓名 指导教师 起讫日期

目录 摘要 (2) ABSTRACT (3) 第一章绪论 (4) 1.1课题背景 (4) 1.2国内外相关领域的研究 (4) 1.3主要研究内容与创新 (5) 1.3.1研究内容与意义 (5) 1.3.2课题的创新点 (5) 1.3.3 研究目的与技术指标 (6) 第二章数字滤波基础 (7) 2.1数字滤波算法概念 (7) 2.2数据采样与频谱分析原理 (8) 2.2.1 时域抽样定理 (8) 2.2.2 离散傅立叶变换(DFT) (8) 2.2.3 快速傅立叶变换(FFT) (9) 2.2.4 频谱分析原理 (9) 2.3常用数字滤波算法基础 (10) 2.3.1常用数字滤波算法分类 (10) 2.3.2常用数字滤波算法特点 (11) 2.3.3常用滤波算法相关原理 (13) 2.4 冲击测试采样数据 (16) 2.4.1噪声的特点与分类 (16) 2.4.2冲击测试采样数据特点 (17) 2.5 MATLAB简介 (17) 2.5.1 MATLAB功能简介 (18) 2.5.2 MATLAB的发展 (18) 第三章、冲击测试滤波算法设计及滤波效果分析 (20) 3.1 冲击测试采样数据的分析 (20) 3.2 滤波算法设计及效果分析 (21) 3.2.1 中位值平均法的设计 (21) 3.2.2限幅法和限速法的设计 (23) 3.2.3一阶滞后法的设计 (25) 3.2.4低通法的设计 (26) 第四章结论与展望 (34) 4.1冲击测试的滤波算法总结 (34) 4.2冲击测试的滤波算法展望 (34) 致谢 (36) 参考文献 (37) 附录:程序代码清单 (38)

基于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小程序(图像处理)2010-04-1612:58:44阅读8评论0字号:大中小 实验原理:中值滤波器是将领域内像素灰度的中值代替该像素的值,对处理脉冲噪声(椒盐噪声)非常有效。为了对一幅图像上的某个点进行中值滤波处理,必须先将掩模内欲求的像素及其领域的像素值排序,确定出中值,主要功能是使拥有不同灰度的点看起来更接近于它的邻近值。 程序说明:函数名为mid(pic_name,s)的函数,其中参数pic_name为读入的图像,s为掩模矩阵的边长,由用户自行决定。 实验说明:随着掩模矩阵的变大,我们可以看到脉冲噪声去除得更加理想,但同时图像会变得更模糊,因为各点像素与其邻域更为接近,因此,进行中值滤波时选择一个适合的掩模矩阵十分重要。另外,我们看到图像的边界处出现了黑色的斑点,这是由于我采用了0来直译边界,这种影响可用镜像反射方式对称地沿其边界扩展来减弱。 另附:其实本实验可以完全由matlab中的函数median或medfilt2简单实现,此处写出内部处理过程,主要是为了让大家理解中值滤波的具体处理过程。 程序源代码: function mid(pic_name,s) close all; s=double(s); X=imread(pic_name); Y1=imnoise(X,'salt&pepper',0.2);%对读入的图像加脉冲噪声 figure; imshow(uint8(Y1)); Y1=double(Y1); [m,n]=size(X); s2=round(s/2); s3=round(s*s/2);%中值像素点的位置

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代码)

数字图像处理实验二 15生医 一、实验内容 产生教材104页题图4.18(右图)所示的二值图像(白为1,黑为0),编程实现习题4.18所要求的处理(3x3的平均滤波和中值滤波)功能(图像四周边界不考虑,处理结果按四舍五入仍取0或1),显示处理前后的图像,比较其异同。 二、运行环境 MATLAB R2014a 三、运行结果及分析 1. 四种不同的窗的3x3平均滤波 ①在 MATLAB 图形窗界面进行放大可以看出四者之间的差别: 4领域与8邻域之间没有明显差别,但是加权与未加权之间的差别较为明显,体现在: 加权后每个矩形块的四个尖角部分都被保留了下来4邻域平均滤波后图 像8邻域平均滤波后图像 4邻域加权平均滤波后图像8邻域加权平均滤波后图像

(图像四周边界不考虑),而未加权的尖角处黑色变为白色。 ②原因分析: 加权后尖角处原来白色的点(1)进行计算3/5=0.6四舍五入后值为1,保持白色,原来黑色的点(0)进行计算2/5=0.4四舍五入后值为0,保持黑色;而未加权尖角处无论原来是黑色还是白色,进行计算 2/4=0.5四舍五入后值为1,所以原先的黑色(0)也变成了白色(1)。 ③下图为放大后的截图: 2.中值滤波与原图像的对比

①在 MATLAB图形窗界面进行放大后可观察出: 使用3x3 方形中值滤波模板的效果与4领域、8领域加权平均滤波的 效果相同,每个矩形块的四个尖角部分都被保留了下来(图像四周边界不考虑)。 ②原因分析: 套用3x3方形中值滤波模板后,尖角处原来白色的点(1)在窗内1多于0,取中值后仍保持白色,原来黑色的点(0)在窗内0多于1,取中值后仍保持白色。 ③下图为放大后的截图: 原图像中值滤波后图像

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实现

function g=QuiMedFil2(f) g=f; t=2; [m,n]=size(f); for i=2:m-1 for j=2:n-1 if(j==2) A=f(i-1:i+1,j-1:j+1); hist=imhist(A); mdn=median(A(:)); %mdn=Med(f(i-1:i+1,j-1:j+1))+1; L=find(f(i-1:i+1,j-1:j+1)th mdn=mdn-1; Ltmdn = Ltmdn-hist(mdn+1); end

while (Ltmdn+hist(mdn+1))<=th Ltmdn=Ltmdn+hist(mdn+1); mdn=mdn+1; end g(i,j)=mdn; end end t=t+1;%t-line; end ======================================= =========================实现过程如下 rgb=imread('Figure1.JPG'); %此处通过matlab读入任何一幅图像 >> I=rgb2gray(rgb); %将图像灰度化 >> I=imresize(I,0.1); %若图像过大可进行适当调整,或省略此步 >> g=QuiMedFil2(I) %调用所编程序执行中值滤波快速算法 figure,imshow(I),figure,imshow(g) %显示原图像和滤波后的图像 =============================================================================== =================================================== 与传统中值滤波算法的同窗口的计算时间对比 快速算法略高于一般算法 =============================================================================== =====================================================菱形5*5中值滤波程序function g=MedFilRho(f) g=f; g=[]; [m,n]=size(f); for i=3:(m-2) for j=3:(n-2) B=[f(i,j),f(i-2,j),f(i-1,j),f(i+1,j),f(i+2,j),f(i,j-1),f(i,j-2),f(i,j+1),f(i,j+2),f(i-1,j-1),f(i+1,j+1),f(i-1,j+1),f(i+1,j-1)]; g(i,j)=median(B); end end 备注:程序为原创,原文地址: https://www.wendangku.net/doc/3b12679786.html,/walqxlqxaw/blog/item/aabb517f877e6f190dd7daad.ht ml

数字图像去噪典型算法及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滤波程序

1线性平滑滤波器 用MA TLAB实现领域平均法抑制噪声程序: I=imread(' c4.jpg '); subplot(231) imshow(I) title('原始图像') I=rgb2gray(I); I1=imnoise(I,'salt & pepper',0.02); subplot(232) imshow(I1) title(' 添加椒盐噪声的图像') k1=filter2(fspecial('average',3),I1)/255; %进行3*3模板平滑滤波 k2=filter2(fspecial('average',5),I1)/255; %进行5*5模板平滑滤波 k3=filter2(fspecial('average',7),I1)/255; %进行7*7模板平滑滤波 k4=filter2(fspecial('average',9),I1)/255; %进行9*9模板平滑滤波 subplot(233),imshow(k1);title('3*3 模板平滑滤波'); subplot(234),imshow(k2);title('5*5 模板平滑滤波'); subplot(235),imshow(k3);title('7*7 模板平滑滤波'); subplot(236),imshow(k4);title('9*9 模板平滑滤波'); 2.中值滤波器 用MA TLAB实现中值滤波程序如下: I=imread(' c4.jpg '); I=rgb2gray(I); J=imnoise(I,'salt&pepper',0.02); subplot(231),imshow(I);title('原图像'); subplot(232),imshow(J);title('添加椒盐噪声图像'); k1=medfilt2(J); %进行3*3模板中值滤波 k2=medfilt2(J,[5,5]); %进行5*5模板中值滤波 k3=medfilt2(J,[7,7]); %进行7*7模板中值滤波 k4=medfilt2(J,[9,9]); %进行9*9模板中值滤波 subplot(233),imshow(k1);title('3*3模板中值滤波'); subplot(234),imshow(k2);title('5*5模板中值滤波'); subplot(235),imshow(k3);title('7*7模板中值滤波'); subplot(236),imshow(k4);title('9*9 模板中值滤波'); 3状态统计滤波器:ordfilt2函数 Y=ordfilt2(X,order,domain) 由domain中非0元素指定邻域的排序集中的第order个元素代替X中的每个元素。Domain 是一个仅包括0和1的矩阵,1仅定义滤波运算的邻域。 Y=ordfilt2(X,order,domain,S) S与domain一样大,用与domain的非0值相应的S的值作为附加补偿。 4二维自适应除噪滤波器:wiener2函数 wiener2函数估计每个像素的局部均值与方差,该函数用法如下:

数字图像处理邻域平均法滤波实验报告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代码)

Gaussian Smoothing Filter 高斯平滑滤波器 一、图像滤波的基本概念 图像常常被强度随机信号(也称为噪声)所污染.一些常见的噪声有椒盐(Salt & Pepper)噪声、脉冲噪声、高斯噪声等.椒盐噪声含有随机出现的黑白强度值.而脉冲噪声则只含有随机的白强度值(正脉冲噪声)或黑强度值(负脉冲噪声).与前两者不同,高斯噪声含有强度服从高斯或正态分布的噪声.研究滤波就是为了消除噪声干扰。 图像滤波总体上讲包括空域滤波和频域滤波。频率滤波需要先进行傅立叶变换至频域处理然后再反变换回空间域还原图像,空域滤波是直接对图像的数据做空间变换达到滤波的目的。它是一种邻域运算,即输出图像中任何像素的值都是通过采用一定的算法,根据输入图像中对用像素周围一定邻域内像素的值得来的。如果输出像素是输入像素邻域像素的线性组合则称为线性滤波(例如最常见的均值滤波和高斯滤波),否则为非线性滤波(中值滤波、边缘保持滤波等)。 线性平滑滤波器去除高斯噪声的效果很好,且在大多数情况下,对其它类型的噪声也有很好的效果。线性滤波器使用连续窗函数内像素加权和来实现滤波。特别典型的是,同一模式的权重因子可以作用在每一个窗口内,也就意味着线性滤波器是空间不变的,这样就可以使用卷积模板来实现滤波。如果图像的不同部分使用不同的滤波权重因子,且仍然可以用滤波器完成加权运算,那么线性滤波器就是空间可变的。任何不是像素加权运算的滤波器都属于非线性滤波器.非线性滤波器也可以是空间不变的,也就是说,在图像的任何位置上可以进行相同的运算而不考虑图像位置或空间的变化。 二、图像滤波的计算过程分析 滤波通常是用卷积或者相关来描述,而线性滤波一般是通过卷积来描述的。他们非常类似,但是还是会有不同。下面我们来根据相关和卷积计算过程来体会一下他们的具体区别: 卷积的计算步骤: (1)卷积核绕自己的核心元素顺时针旋转180度 (2)移动卷积核的中心元素,使它位于输入图像待处理像素的正上方 (3)在旋转后的卷积核中,将输入图像的像素值作为权重相乘 (4)第三步各结果的和做为该输入像素对应的输出像素 相关的计算步骤: (1)移动相关核的中心元素,使它位于输入图像待处理像素的正上方 (2)将输入图像的像素值作为权重,乘以相关核 (3)将上面各步得到的结果相加做为输出 可以看出他们的主要区别在于计算卷积的时候,卷积核要先做旋转。而计算相关过程中不需要旋转相关核。 例如:magic(3) =[8 1 6;3 5 7;4 9 2],旋转180度后就成了[2 9 4;7 5 3;6 1 8] 三、高斯(核)函数 所谓径向基函数(Radial Basis Function 简称RBF), 就是某种沿径向对称的标量函数。通常定义为空间中任一点x到某一中心xc之间欧氏距离的单调函数, 可记作k(||x-xc||), 其作用往往是局部的, 即当x远离xc时函数取值很小。最常用的径向基函数是高斯核函数,形式为k(||x-xc||)=exp{- ||x-xc||^2/(2*σ)^2) } 其中xc为核函数中心,σ为函数的宽度参数, 控制了函数的径向作用范围。

图像处理——均值滤波+中值滤波(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代码)

数字图像处理-平均滤波与中值滤波(含MATLAB代码)

数字图像处理实验二 15生医 一、实验内容 产生教材104页题图4.18(右图)所示的二值图像(白为1,黑为0),编程实现习题4.18所要求的处理(3x3的平均滤波和中值滤波)功能(图像四周边界不考虑,处理结果按四舍五入仍取0或1),显示处理前后的图像,比较其异同。 二、运行环境 MATLAB R2014a 三、运行结果及分析 1. 四种不同的窗的3x3平均滤波 ①在 MATLAB 图形窗界面进行放大可以看出四者之间的差别: 4领域与8邻域之间没有明显差别,但是加权与未加权之间的差别较为明显,体现在: 加权后每个矩形块的四个尖角部分都被保留了下来 4邻域平均滤波后图 像8邻域平均滤波后图 像4邻域加权平均滤波后图像8邻域加权平均滤波后图像

(图像四周边界不考虑),而未加权的尖角处黑色变为白色。 ②原因分析: 加权后尖角处原来白色的点(1)进行计算3/5=0.6四舍五入后值为1,保持白色,原来黑色的点(0)进行计算2/5=0.4四舍五入后值为0,保持黑色;而未加权尖角处无论原来是黑色还是白色,进行计算2/4=0.5四舍五入后值为1,所以原先的黑色(0)也变成了白色(1)。 ③下图为放大后的截图: 2. 中值滤波与原图像的对比

四、心得体会 通过MATLAB编程更加理解了课后题的计算结果,直观地看出了黑白像素点灰度值变化前后的取值异同。同时,对MATLAB实现像素点灰度值的替换机理也有所掌握,比如后边附的程序中会提到的“%”标注的思考。 五、具体程序 % 生成黑白块图像 unit=zeros(64,64); f=zeros(256,256); for i=1:1:32 for j=1:1:32 unit(i,j)=1; % 1/4白块 end end for i=33:1:64 for j=33:1:64 unit(i,j)=1; % 1/4白块 end end for i=1:64:256

相关文档
相关文档 最新文档