平滑滤波方法研究

合集下载

边界保持平滑滤波方法研究-灰度方差-k近邻平滑

边界保持平滑滤波方法研究-灰度方差-k近邻平滑

. ...大学毕业设计(论文)图像降噪中的边界保持平滑滤波方法研究:学号:指导教师:摘要当今社会是信息数字化时代,无论是学习,生活都与信息数字紧密相关联,其中数字图像处理在其中占有着举足轻重的地位。

21世纪,数字图像处理技术高速发展,并广泛应用于识别领域,医学领域,体育领域等。

平滑滤波是图像处理学的基础.最基础的滤波方式是均值滤波和中值滤波,这两种滤波方式对噪声都有抑制作用而且算法简单,但是导致图像变模糊尤其是边缘变模糊是无可避免的。

虽然将滤波器加权后,效果有所改善,但理论是近似的,所以效果仍不明显。

为了改善边缘的模糊,我们发现只要处理好灰度变化显著的边缘,图像就会达到一个很好的效果,要最大程度保持图片的清晰,希望在进行平滑处理的同时,检测出景物的边界,然后对噪声进行处理。

本文用matlab编辑算法实现中值滤波,均值滤波,最小方差滤波,k近邻滤波对噪声的处理,并进行性能的分析和比较。

关键词:matlab;中值滤波;均值滤波;最小方差滤波;k近邻滤波AbstactModern society is digital , whether learning or life is closely associated with digital information, including digital image processing in which occupies a pivotal position .21 century, the rapid development of digital image processing technology widely used in the field of identification, medicalfication, the field of sports.The smoothing filter is the basis of image processing. The most basic filter is the mean filter and median filter, both filtering noise inhibited and the algorithm is simple, but lead to the edge of the image blurred without avoidable. Although the effect is improving ,the theory is approximate, so the effect is still not clear.In order to improve the edge blur, we found that handling the gray-scale variation significant edge, the image will reach a good effect, To the maximum extent to maintain the clarity of the picture, while performing smoothing processing, a scene boundary is detected, then, the noise is processing.In this paper, using matlab algorithm for editing median filtering, mean filtering, minimum variance filtering, k-nearest neighbor filtering noise processing and analysis and comparison of performance.Keywords: matlab; median filter; mean filter; minimum variance filtering; k nearest neighbor filter目录摘要 (I)Abstact (II)第1章:绪论 (1)1.1 课题背景 (1)1.2研究目标 (1)1.3研究容 (1)1.4论文的组织安排 (2)第2章平滑滤波的相关知识 (3)2.1噪声的相关知识 (3)2.1.1 噪声的定义 (3)2.1.2在matlab中添加噪声 (4)2.2彩色图像的分解 (5)2.3平滑的概念 (6)2.3.1空间域方法 (7)2.3.2频率域方法 (7)2.3.3平滑算法 (7)2.4峰值信噪比的概念 (8)第3章均值滤波 (10)3.1均值滤波的概念及方法 (10)3.2均值滤波的效果比较 (11)3.3均值滤波的评价 (13)第4章中值滤波 (14)4.1中值滤波的概念和方法 (14)4.2均值滤波的效果比较 (14)对加椒盐噪声的图像进行中值滤波得到滤波前后的图像比较,如图10,图11所示: (14)4.3中值滤波的评价 (16)第5章灰度最小方差滤波器 (17)5.1边缘保持类平滑滤波的效果 (17)5.2灰度最小方差滤波器 (17)5.2.1灰度最小方差滤波器的概念和方法 (17)5.2.3灰度最小方差滤波器效果比较 (19)5.2.4灰度最小方差滤波器的评价 (20)第6章K近邻平滑滤波器 (21)6.1 k近邻平滑滤波器的概念和方法 (21)6.2k近邻平滑滤波器的效果比较 (21)6.3k近邻平滑滤波器的评价 (24)结论 (25)致 (28)主要参考文献 (29)附录主要程序源代码 (30)第1章:绪论1.1 课题背景平滑滤波是低频增强的空间域滤波技术。

体素滤波和平滑滤波

体素滤波和平滑滤波

体素滤波和平滑滤波
体素滤波和平滑滤波是数字图像处理中常用的两种滤波方法。


体素滤波(Voxel Filtering)是一种基于三维图像数据的滤波方法,主要用于去除图像中的噪声和改善图像质量。

它通过对图像中的每个体素(三维像素)进行加权平均或其他处理方法,来实现滤波效果。

体素滤波可以分为线性滤波和非线性滤波两种类型,其中线性滤波主要包括高斯滤波、中值滤波等,非线性滤波主要包括双边滤波、自适应滤波等。


平滑滤波(Smoothing Filtering)是一种基于二维图像数据的滤波方法,主要用于减少图像噪声和提高图像平滑度。

它通过对图像中相邻像素进行加权平均或其他处理方法,来实现滤波效果。

平滑滤波可以分为线性平滑滤波和非线性平滑滤波两种类型,其中线性平滑滤波主要包括高斯滤波、中值滤波等,非线性平滑滤波主要包括双边滤波、自适应滤波等。


总的来说,体素滤波和平滑滤波都是为了提高图像质量和去除噪声,但它们的应用场景和处理对象不同。

体素滤波主要应用于三维图像处理,而平滑滤波主要应用于二维图像处理。

此外,两者都可以通过调整滤波参数来实现不同程度的滤波效果。

航空重力数据样条平滑滤波试验研究

航空重力数据样条平滑滤波试验研究
获 得 与 r - 1 A 系统 滤 波 结 果 几 乎 同样 满 意 的 滤波 效果 , 二 者 滤 波 结果 差值 的标 准偏 差 可 达 ± 0 . 4 mGa 1 . 关键词 Gr _ 1 A航 空重力 , B样 条 , 平 滑, 滤 波 中图分类号 P 6 3 1 , P 3 1 2 文献标识码 A d o i : 1 0 . 6 O 3 8 / p g 2 O 1 3 0 2 ( 1 7
Ke y wo r d s GT. 1 A a i r b o r n e g r a v i me t r y ,B- s p l i n e ,s mo o t h i n g,f i l t e r i n g
p g 2 0 1 3 0 2 0 7 .
W ANG J i n g - b o ,XI ONG S h e n g - q i n g,GUO Z h bh o n g,e t a 1 .S p l i n e s mo o t h i n g f o r a i r b o r n e g r a v i t y d a t a . Pr o gr e s s i n Ge o ph y s .
a n d g e t s o me me a n i n g t u l r e s u l t s . B y s e l e c t i n g p r o p e r p a r a me t e r s s u c h a s s p l i n e a d n s mo o t h i n g ,t h e s e s p l i n e s mo o t h i n g f i l t e r s or f a i r b o r n e g r a v i t y d a t a c a n g e t s a t i s f a c t o r y f i l t e r i n g e f f e c t a l mo s t a s g o o d a s GT- 1 A r e s u l t ,a n d t h e s t a n d a r d d e v i a t i o n o f t h e d i s c r e p a n c y i s wi t h i n± O . 4 eGa r l i n c o mp a r i s o n wi t h GT- 1 A r e s u l t .

图像平滑实验报告

图像平滑实验报告

图像平滑实验报告摘要本实验旨在研究图像平滑技术,通过对比不同图像平滑方法的效果,评估其在图像处理中的应用价值。

我们使用了基于邻域平均和高斯滤波器的两种常见图像平滑方法,并通过实验验证它们的效果。

引言图像平滑是图像处理的一项重要技术,它能够去除图像中的噪声和细节,使图像更加平滑和清晰。

在许多应用中,如模式识别、计算机视觉和医学图像处理等领域,图像平滑都扮演着关键的角色。

本实验将尝试两种常见的图像平滑方法,并比较它们的效果。

实验步骤步骤一:图像获取和预处理我们选择了一张分辨率为1024x768的彩色图像作为实验对象。

首先,我们从图像库中选择了一张自然风景图像,并将其载入到实验环境中。

然后,我们对图像进行了预处理,包括调整亮度、对比度和色彩平衡等操作,以确保实验的准确性和可重复性。

步骤二:邻域平均法邻域平均法是一种基于像素邻域的图像平滑方法。

我们选择了一个固定大小的邻域窗口,并将该窗口在图像上滑动,对每个像素的邻域进行平均操作,以获得平滑后的图像。

具体步骤如下:1.定义邻域窗口大小为3x3。

2.从图像的左上角开始,将邻域窗口中的像素进行平均操作,并将结果作为中心像素的新值。

3.将窗口向右滑动一个像素,并重复步骤2,直到处理完整个图像。

4.将窗口向下滑动一个像素,并重复步骤2和步骤3,直到处理完整个图像。

步骤三:高斯滤波器法高斯滤波器是一种基于高斯函数的图像平滑方法。

它通过对图像进行卷积操作,将每个像素的值替换为其周围像素的加权平均值。

具体步骤如下:1.定义高斯滤波器矩阵。

我们选择一个3x3的高斯滤波器,其中矩阵中心的权重最大,边缘处的权重最小。

2.将滤波器矩阵与图像进行卷积操作,得到平滑后的图像。

卷积操作可以使用矩阵乘法和加权平均值计算来实现。

3.重复步骤2,直到处理完整个图像。

实验结果与分析邻域平均法结果经过邻域平均法处理后,图像的细节和噪声得到了一定程度的平滑。

然而,图像的整体清晰度和细节丰富度也有所下降。

fft曲线平滑-概述说明以及解释

fft曲线平滑-概述说明以及解释

fft曲线平滑-概述说明以及解释1.引言1.1 概述概述FFT(Fast Fourier Transform,快速傅里叶变换)是一种广泛应用于信号处理和频谱分析的算法。

通过将信号从时域转换为频域,FFT能够分析信号中的频率成分,从而实现对信号的特征提取、滤波和谱分析等功能。

在信号处理领域,FFT被广泛应用于音频处理、图像处理、通信系统、雷达系统等众多领域。

通过将信号转换为频域表示,FFT能够快速计算信号的频谱,并提取信号中的频率特征。

这为进一步的信号分析和处理提供了基础。

本文的重点是FFT曲线平滑方法。

在实际应用中,我们常常会遇到从FFT得到的频谱曲线存在噪声或震荡的情况。

这些噪声和震荡会对进一步的信号分析和处理带来困扰。

为了去除这些噪声和震荡,研究人员提出了各种FFT曲线平滑的方法。

这些方法包括基于窗函数的平滑、滑动平均平滑、高斯平滑等。

本文将介绍这些方法的原理和应用,并比较它们的优劣。

通过对FFT曲线的平滑处理,我们可以得到更准确和可靠的频谱结果。

这将有助于在音频处理、图像处理和通信系统等领域中更好地分析和理解信号。

同时,FFT曲线平滑方法的研究也是一个不断发展的领域,未来我们可以期待更多更有效的平滑算法的出现。

通过本文的学习,读者将能够深入了解FFT的基本原理、应用,以及FFT曲线平滑方法的原理、效果和应用。

同时,读者也可以对FFT曲线平滑的未来发展进行展望。

本文的目的是为读者提供一个全面的介绍和参考,帮助读者更好地理解和应用FFT曲线平滑技术。

1.2 文章结构文章结构部分的内容可以是以下几点:本文主要分为引言、正文和结论三个部分。

引言部分主要对文章的研究对象进行概述,介绍FFT曲线平滑的背景和意义。

同时,还会对整个文章的结构进行简要说明,为读者提供一个概览。

正文部分是整篇文章的核心部分,包括FFT的基本原理、FFT在信号处理中的应用以及FFT曲线平滑的方法。

在2.1节中,我们将介绍FFT的基本原理,包括离散傅里叶变换(DFT)和快速傅里叶变换(FFT)的基本概念和理论基础。

图像平滑实验报告

图像平滑实验报告

图像平滑实验报告图像平滑实验报告一、引言图像平滑是数字图像处理中的一项重要任务,其目的是减少图像中的噪声,使图像更加清晰和易于分析。

在本实验中,我们将使用不同的平滑滤波器对一幅图像进行处理,并比较它们的效果。

二、实验方法1. 实验材料我们选择了一张包含噪声的测试图像作为实验材料,该图像包含了不同频率和强度的噪声。

2. 实验步骤(1)加载测试图像:我们使用Python的OpenCV库加载测试图像,并将其转换为灰度图像,以便于后续处理。

(2)添加噪声:为了模拟真实场景中的图像噪声,我们使用随机函数在图像中添加高斯噪声和椒盐噪声。

(3)平滑滤波器处理:我们选择了三种常用的平滑滤波器,包括均值滤波器、中值滤波器和高斯滤波器。

分别对添加噪声的图像进行处理,并记录处理后的图像。

(4)性能评估:使用图像质量评估指标,如均方误差(MSE)和峰值信噪比(PSNR),来评估不同滤波器的性能。

三、实验结果我们将实验结果分为以下几个部分进行讨论。

1. 均值滤波器均值滤波器是一种简单的平滑滤波器,它通过计算邻域像素的平均值来实现图像平滑。

在我们的实验中,我们选择了不同大小的邻域窗口进行均值滤波。

结果显示,随着邻域窗口大小的增加,噪声的减少效果也越明显。

然而,较大的窗口大小也会导致图像细节的模糊。

因此,在选择均值滤波器时,需要根据具体应用场景平衡噪声减少和图像细节保留之间的关系。

2. 中值滤波器中值滤波器是一种非线性平滑滤波器,它通过计算邻域像素的中值来实现图像平滑。

在我们的实验中,我们选择了不同大小的邻域窗口进行中值滤波。

结果显示,中值滤波器在去除椒盐噪声方面表现出色。

它能够有效地去除孤立的噪点,但对于较大的噪点区域效果不明显。

因此,中值滤波器在处理椒盐噪声图像时是一种有效的选择。

3. 高斯滤波器高斯滤波器是一种线性平滑滤波器,它通过对邻域像素进行加权平均来实现图像平滑。

在我们的实验中,我们选择了不同的滤波器尺寸和标准差。

信号实时平滑处理方法

信号实时平滑处理方法

信号实时平滑处理方法随着科技的不断发展,信号处理技术在各个领域都得到了广泛应用。

然而,由于信号本身可能存在噪声或异常值,这给信号处理带来了一定的困难。

为了解决这个问题,信号实时平滑处理方法应运而生。

信号实时平滑处理方法是一种通过对信号进行滤波处理,减少噪声和异常值的影响,使信号更加平滑和稳定的技术。

它可以应用于各种类型的信号,包括图像、声音、视频等。

在实时平滑处理方法中,常用的技术包括移动平均法、指数平滑法和中值滤波法等。

这些方法各自有着不同的特点和适用范围。

移动平均法是最简单常用的平滑处理方法之一。

它通过计算一段时间内的信号平均值来达到平滑的效果。

移动平均法适用于信号变化缓慢且噪声较小的情况。

然而,由于移动平均法只考虑了过去一段时间内的信号值,对于快速变化的信号效果并不理想。

指数平滑法则考虑了信号的时序特性,通过对历史信号值进行加权平均来实现平滑处理。

指数平滑法适用于信号变化较快的情况,能够更好地捕捉信号的趋势。

然而,指数平滑法对异常值较为敏感,可能会导致平滑后的信号出现偏差。

中值滤波法是一种基于排序的平滑处理方法,它通过将信号窗口内的值进行排序,然后取中间值作为平滑后的值。

中值滤波法适用于信号中存在较大幅度的异常值的情况,能够有效地去除噪声和异常值。

然而,中值滤波法对于信号变化较快的情况效果不如其他方法。

除了以上介绍的方法,还有一些其他的信号实时平滑处理方法,如卡尔曼滤波法和小波变换法等。

这些方法在不同的应用领域有着广泛的应用,能够有效地提高信号处理的质量和准确性。

在实际应用中,选择合适的信号实时平滑处理方法需要考虑多个因素,包括信号的特点、噪声的类型和程度、处理的实时性等。

同时,还需要根据具体的应用要求进行参数的调整和优化,以达到最佳的平滑效果。

信号实时平滑处理方法是一种重要的信号处理技术,能够有效地减少噪声和异常值的影响,提高信号处理的质量和准确性。

不同的方法适用于不同的信号特点和应用场景,选择合适的方法对于信号处理的结果至关重要。

路径高斯平滑滤波

路径高斯平滑滤波

路径高斯平滑滤波全文共四篇示例,供读者参考第一篇示例:路径高斯平滑滤波(Path Gaussian Smoothing Filter)是一种常用的路径规划算法,其主要作用是对路径进行平滑处理,消除路径中的抖动,使得路径更加平滑和连续,适用于自动驾驶、机器人导航等领域。

本文将介绍路径高斯平滑滤波的基本原理、算法流程以及应用场景。

一、原理概述路径高斯平滑滤波的基本原理是利用高斯分布的特性对路径进行滤波处理,通过调整高斯核的参数来控制路径的平滑程度。

高斯分布是一种连续概率分布,具有钟形曲线的特点,其数学表达式为:\[G(x) = \frac{1}{\sqrt{2\pi\sigma^2}}e^{-\frac{1}{2}(\frac{x-\mu}{\sigma})^2}\]\(x\)为随机变量,\(\mu\)为均值,\(\sigma\)为标准差,\(G(x)\)即为高斯分布函数。

在路径平滑滤波中,我们通常将路径抽象成一系列的点,每个点的位置由坐标\((x, y)\)表示,我们可以将路径上的点看作随机变量\(x\),然后利用高斯分布对路径进行平滑处理,即通过计算每个点在高斯分布下的权重来调整其位置,使得路径更加平滑。

二、算法流程路径高斯平滑滤波的算法流程主要包括以下几个步骤:1. 初始化参数:选择高斯核的均值\(\mu\)和标准差\(\sigma\),以及平滑系数\(\lambda\),通常根据实际情况进行调整。

2. 计算权重:对路径上的每个点,计算其在高斯分布下的权重,可以利用高斯分布函数对距离进行计算,即\(w_i =e^{-\frac{d_i^2}{2\sigma^2}}\),其中\(d_i\)为当前点到均值\(\mu\)的距离。

3. 更新路径:根据计算得到的权重,对路径上的每个点进行位置调整,通常采用加权平均的方法,即新位置为\(new\_point =\frac{\sum_i w_i \cdot old\_point_i}{\sum_i w_i}\)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

平滑滤波方法研究平滑滤波是低频增强的空间域滤波技术。

它的目的有两类:一类是模糊;另一类是消除噪音。

并且具有一定的处理要求,一是不能损坏图像的轮廓及边缘等重要信息;二是使图像清晰视觉效果好。

平滑滤波的方法有邻域平滑滤波,就是求邻近像元点的平均亮度值,双边滤波,中值滤波,以及非局部均值滤波等。

1、双边滤波法双边滤波是一种非线性滤波器,它可以达到保持边缘、降噪平滑的效果。

双边滤波的边缘保持特性主要是通过在卷积的过程中组合空域函数和值域核函数来实现的,典型的核函数为高斯分布函数,如下所示:其中:为归一化作用。

σs为空域高斯函数的标准差,σr为值域高斯函数的标准差,Ω表示卷积的定义域。

编写代码测试,当添加的噪声为0.05时,结果如下滤波后图像添加噪声为0.3时,结果如下滤波后图像由此可知,双边滤波具有去除噪音的作用2、邻域平均法邻域平滑滤波原理:邻域平均法就是对含噪声的原始图像f(x,y)的每一个像素点取一个邻域,计算S中所有像素灰度级的平均值,作为邻域平均处理后的图像g(x, y)的像素值。

即式中:x,y=0,1,…,N-1;S是以(x,y)为中心的邻域的集合,M是S 内的点数。

邻域平均法的思想是通过一点和邻域内像素点求平均来去除突变的像素点,从而滤掉一定噪声,其优点是算法简单,计算速度快,其代价会造成图像在一定程度上的模糊。

3、中值滤波法中值滤波就是用一个奇数点的移动窗口,将窗口的中心点的值用窗口内的各点中值代替。

假设窗口内有五点,其值为80、90、200、110和120,那么此窗口内各点的中值及为110。

设有一个一维序列f1,f2,…,fn,取窗口长度(点数)为m(m为奇数),对其进行中值滤波,就是从输入序列中相继抽出m个数fi-v,…,fi-1,fi,fi+1,…,fi+v(其中fi为窗口中心值,v=(m-1)/2),再将这m个点按其数值大小顺序排序,取其序号的中心点的那个数作为滤波输出。

数学公式表示为:Yi=Med{fi-v,…,fi-1,fi,fi+1,…,fi+v} i∈N v=(m-1)/2 (式1-2)Yi称为序列fi-v,…,fi-1,fi,fi+1,…,fi+v的中值例如,有一序列{0,3,4,0,7},重新排序后为{0,0,3,4,7}则Med{0,0,3,4,7}=3。

此列若用平滑滤波,窗口也取5,那么平滑滤波输出为(0+3+4+0+7)/5=2.8。

把一个点的特定长度或形状的邻域称作窗口。

在一维情况下,中值滤波器是一个含有奇数个像素的滑动窗口。

中值滤波很容易推广到二维,此时可以利用二维形式的窗口。

对于平面图像采用的二维中值滤波可以由下式表示:式中:A为窗口,{Xij}为二维数据序列,即数字图像各点的灰度值。

在对图像进行中值滤波时,如果窗口是关于中心点对称的,并且包含中心点在内,则中值滤波能保持任意方向的跳变边缘。

图像中的跳变边缘指图像中不同灰度区域之间的灰度突变边缘。

在实际使用窗口时,窗口的尺寸一般先取3,再取5,依次增大,直到滤波效果满意为止,对于有缓变的较长轮廓线物体的图像,采用方形或圆形窗口较合适,对于包含尖顶角物体的图像,采用十字形窗口较合适。

使用二维中值滤波值得注意的是要保持图像中有效线状体。

通过实验可得出中值滤波具有以下特性:(1)对于某些输入信号中值滤波具有不变性。

(2)中值滤波可以用来减弱随机干扰的脉冲干扰,具有较好的去噪声性能。

4、非局部均值(NLM)滤波法非局部均值滤波用于图像去噪,它就充分利用了图像的冗余性。

它的基本思想是图像包含了重复结构,取其平均值将降低噪声。

NLM 滤波是斯拉夫斯基的演变,它是从局部相似强度中取相似图像像素的平均值。

两种滤波主要不同之处是使用区域间比较得出像素间的相似性比像素间比较更具有鲁棒性。

况且匹配模式并未限制在局部区域。

也就是说,远离被过滤的像素不被惩罚。

给出一幅图像Y使用NLM方法在点处的过滤值可看成是计算邻近像素间的加权平均值Ni,公式如下:滤波前后图像对比平滑滤波即消除噪声是图像处理中重要的一个方面。

最基本的平滑方法在空域为均值滤波和中值滤波,频域有各种低通平滑滤波器。

平滑方法又可分为线性与非线性。

总之,不管我们使用什么样的平滑方法,其实就是满足去噪要求后尽最大可能地保持图像的原有特性与细节。

双边滤波clear all;close all;clc;filename = 'G:\蓝春\双边滤波\001.jpg';img=imread(filename);A = im2double(img);Info=imfinfo(filename);pixHeight=Info.Height;pixWidth=Info.Width;if Info.BitDepth>8img=rgb2gray(img);end% img = padarray(img,[3 3],'symmetric','both');% f=imnoise(f0,'salt & pepper',0.05);img=imnoise(img,'salt & pepper',0.1);img=imnoise(img,'gaussian',0.3);% img=mat2gray(img);[m n l]=size(img);% [m n 1] = size(img);dim = size(img);B = zeros(dim);figure(1);imshow(img);r=10;imgn=zeros(m+2*r+1,n+2*r+1);imgn(r+1:m+r,r+1:n+r)=img(:,:,1);imgn(1:r,r+1:n+r)=img(1:r,1:n);imgn(1:m+r,n+r+1:n+2*r+1)=imgn(1:m+r,n:n+r);imgn(m+r+1:m+2*r+1,r+1:n+2*r+1)=imgn(m:m+r,r+1:n+2*r+ 1);imgn(1:m+2*r+1,1:r)=imgn(1:m+2*r+1,r+1:2*r); sigma_d=3;sigma_r=0.1;% [x,y] = meshgrid(-r:r,-r:r);% w1=exp(-(x.^2+y.^2)/(2*sigma_d^2));[X,Y] = meshgrid(-r:r,-r:r);G = exp(-(X.^2+Y.^2)/(2*sigma_d^2));% h = waitbar(0,'Applying bilateral filter...');% set(h,'Name','Bilateral Filter Progress');h=waitbar(0,'wait...');for i = 1:dim(1)for j = 1:dim(2)% Extract local region.iMin = max(i-r,1);iMax = min(i+r,dim(1));jMin = max(j-r,1);jMax = min(j+r,dim(2));I=A(iMin:iMax,jMin:jMax);% Compute Gaussian intensity weights.H = exp(-(I-A(i,j)).^2/(2*sigma_r^2));% Calculate bilateral filter response.F = H.*G((iMin:iMax)-i+r+1,(jMin:jMax)-j+r+1); B(i,j) = sum(F(:).*I(:))/sum(F(:));endwaitbar(i/dim(1));endclose(h)Image_bf = B;imgout=uint8(Image_bf*255);% imgout=s(r+1:m+r,r+1:n+r);imwrite(imgout, 'G:\蓝春\双边滤波\001.jpg');figure(2);imshow(mat2gray(imgout));非局部均值(NLM)滤波% filename='original.bmp';inputpath ='G:\蓝春\双边滤波\';outputpath='G:\蓝春\双边滤波\';% file='128';% file='256';file='chu512';% file='1024';ex='.BMP';filename = [inputpath,file, ex];img=imread(filename);Info=imfinfo(filename);pixHeight=Info.Height;pixWidth=Info.Width;if Info.BitDepth>8img=rgb2gray(img);endfigure(1);imshow(img);tic;restored_img=NLmeansfilter(single(img),21,7,5); timeused = toc;figure(2);imshow(restored_img,[]);title('滤波后图像');imwrite(uint8(restored_img),'restored_img.bmp','bmp') ;function [output]=NLmeansfilter(input,t,f,h)[m n]=size(input);Output=zeros(m,n);input2 = padarray(input,[f f],'symmetric');kernel = make_kernel(f);kernel = kernel / sum(sum(kernel));for i=1:mfor j=1:ni1 = i+ f;j1 = j+ f;W1= input2(i1-f:i1+f , j1-f:j1+f);wmax=0;average=0;sweight=0;rmin = max(i1-t,f+1);rmax = min(i1+t,m+f);smin = max(j1-t,f+1);smax = min(j1+t,n+f);for r=rmin:1:rmaxfor s=smin:1:smaxif(r==i1 && s==j1)continue;end;W2= input2(r-f:r+f , s-f:s+f);d =sum(sum(kernel.*single((W1-W2).*(W1-W2))));w=exp(-d/h);if w>wmaxwmax=w;endsweight = sweight + w;W3 = input2(r,s);average = average + w*single(W3);endendaverage = average +wmax*single(input2(i1,j1)); ¨sweight = sweight + wmax;if sweight > 0output(i,j) = average / sweight;elseoutput(i,j) = input(i,j);endendwaitbar(i/m);endfunction [kernel] = make_kernel(f)kernel=zeros(2*f+1,2*f+1);for d=1:fvalue= 1 / (2*d+1)^2 ;for i=-d:dfor j=-d:dkernel(f+1-i,f+1-j)= kernel(f+1-i,f+1-j) + value ;endendendkernel = kernel ./f。

相关文档
最新文档