高斯平滑滤波器(含matlab代码)

合集下载

高斯平滑滤波器(含matlab代码)(数据参考)

高斯平滑滤波器(含matlab代码)(数据参考)

Gaussian Smoothing Filter高斯平滑滤波器一、图像滤波的基本概念图像常常被强度随机信号(也称为噪声)所污染.一些常见的噪声有椒盐(Salt & Pepper)噪声、脉冲噪声、高斯噪声等.椒盐噪声含有随机出现的黑白强度值.而脉冲噪声则只含有随机的白强度值(正脉冲噪声)或黑强度值(负脉冲噪声).与前两者不同,高斯噪声含有强度服从高斯或正态分布的噪声.研究滤波就是为了消除噪声干扰。

图像滤波总体上讲包括空域滤波和频域滤波。

频率滤波需要先进行傅立叶变换至频域处理然后再反变换回空间域还原图像,空域滤波是直接对图像的数据做空间变换达到滤波的目的。

它是一种邻域运算,即输出图像中任何像素的值都是通过采用一定的算法,根据输入图像中对用像素周围一定邻域内像素的值得来的。

如果输出像素是输入像素邻域像素的线性组合则称为线性滤波(例如最常见的均值滤波和高斯滤波),否则为非线性滤波(中值滤波、边缘保持滤波等)。

线性平滑滤波器去除高斯噪声的效果很好,且在大多数情况下,对其它类型的噪声也有很好的效果。

线性滤波器使用连续窗函数内像素加权和来实现滤波。

特别典型的是,同一模式的权重因子可以作用在每一个窗口内,也就意味着线性滤波器是空间不变的,这样就可以使用卷积模板来实现滤波。

如果图像的不同部分使用不同的滤波权重因子,且仍然可以用滤波器完成加权运算,那么线性滤波器就是空间可变的。

任何不是像素加权运算的滤波器都属于非线性滤波器.非线性滤波器也可以是空间不变的,也就是说,在图像的任何位置上可以进行相同的运算而不考虑图像位置或空间的变化。

二、图像滤波的计算过程分析滤波通常是用卷积或者相关来描述,而线性滤波一般是通过卷积来描述的。

他们非常类似,但是还是会有不同。

下面我们来根据相关和卷积计算过程来体会一下他们的具体区别:卷积的计算步骤:(1)卷积核绕自己的核心元素顺时针旋转180度(2)移动卷积核的中心元素,使它位于输入图像待处理像素的正上方(3)在旋转后的卷积核中,将输入图像的像素值作为权重相乘(4)第三步各结果的和做为该输入像素对应的输出像素相关的计算步骤:(1)移动相关核的中心元素,使它位于输入图像待处理像素的正上方(2)将输入图像的像素值作为权重,乘以相关核(3)将上面各步得到的结果相加做为输出可以看出他们的主要区别在于计算卷积的时候,卷积核要先做旋转。

gmsk调制解调matlab -回复

gmsk调制解调matlab -回复

gmsk调制解调matlab -回复题目:GMSK调制解调在MATLAB中的实现与应用引言:GMSK调制解调(Gaussian Minimum Shift Keying)是一种具有高效带宽利用率和抗多径衰落干扰能力的调制解调技术。

它在通信系统中有广泛应用,如蜂窝移动通信系统、无线局域网(WLAN)以及蓝牙技术等。

本文将介绍GMSK调制解调的原理,并通过MATLAB来实现和仿真。

一、GMSK调制原理GMSK调制是一种连续相位调制技术,其基本原理是将离散数据序列通过Gaussian型滤波器进行平滑处理,再通过一连串的正弦函数进行相位调制。

GMSK调制过程中,利用数据的位置变化来改变相位,从而实现数据的调制。

其优点是频谱带宽窄,具有抗多径衰落的能力。

二、GMSK调制过程1. 生成数据序列:在MATLAB中,可以通过使用randi函数生成随机的数字序列作为GMSK调制的输入。

例如,可以使用以下代码生成长度为N的二进制随机序列:MATLABdata = randi([0,1],1,N);2. GMSK调制:GMSK调制可以通过将原始数据序列转换为相位差的形式来实现:MATLABphase_diff = diff(data); 计算相邻数据间的差值g = exp(j*phase_diff*pi/2); 对差值进行相位调制其中,j表示虚数单位,pi/2用于将相位差转换为弧度表示。

3. I/Q信号生成:GMSK调制生成的信号是复数信号,包括实部和虚部。

通过将实部和虚部分别与正弦和余弦函数相乘,可以生成I/Q信号:MATLABI = real(g);Q = imag(g);其中,I表示实部,Q表示虚部。

4. 滤波:GMSK调制的输出信号需要通过高斯型滤波器进行滤波,以平滑信号的相位变化。

MATLAB提供了fir1函数用于设计滤波器:MATLABfc = 0.25; 滤波器截止频率filter_order = 128; 滤波器阶数filter_coeff = fir1(filter_order, fc);filtered_I = conv(I, filter_coeff);filtered_Q = conv(Q, filter_coeff);这里选取截止频率为0.25,滤波器阶数为128,使用fir1函数设计FIR 滤波器,并对I/Q信号进行滤波操作。

matlab 高斯滤波器 截止频率-概念解析以及定义

matlab 高斯滤波器 截止频率-概念解析以及定义

matlab 高斯滤波器截止频率-概述说明以及解释1.引言1.1 概述概述高斯滤波器是一种常用的线性平滑滤波器,在图像处理中起着重要作用。

通过对输入图像进行卷积操作,高斯滤波器可以有效地去除图像中的噪声,平滑图像的细节,并提高图像的质量。

在Matlab中,高斯滤波器的应用十分广泛,可以通过内置函数或自定义函数来实现。

本文主要介绍了Matlab中高斯滤波器的使用方法和原理,并重点讨论了截止频率的概念及其对滤波效果的影响。

通过深入研究高斯滤波器的截止频率,我们可以更好地理解滤波器在图像处理中的应用,以及如何调整截止频率来达到更好的滤波效果。

这将有助于读者更好地应用高斯滤波器解决实际的图像处理问题。

1.2 文章结构本文将首先介绍Matlab中的高斯滤波器,包括其在图像处理中的应用和原理。

接着,我们将详细探讨高斯滤波器中截止频率的概念,以及如何通过调整截止频率来影响滤波效果。

最后,我们将对文章进行总结,并展望未来高斯滤波器在图像处理领域的发展前景。

通过本文的阐述,读者将更加深入地了解高斯滤波器的工作原理及其在实际应用中的重要性。

的内容1.3 目的:本文的主要目的是探讨在Matlab中使用高斯滤波器进行图像处理时,如何通过调整截止频率来达到更好的滤波效果。

通过深入分析高斯滤波器的原理和截止频率的概念,我们将探讨如何在实际应用中调整截止频率,以实现对图像的更精确和有效的处理。

通过本文的研究,读者可以更加深入地了解高斯滤波器在图像处理中的作用,并且掌握调整截止频率的方法,从而提高图像处理的质量和效率。

2.正文2.1 Matlab中的高斯滤波器在Matlab中,我们可以通过使用内置函数`fspecial`来创建高斯滤波器。

该函数的语法如下:matlabh = fspecial('gaussian', hsize, sigma);其中,`hsize`表示滤波器的大小,通常为一个奇数,如3、5、7等;`sigma`表示高斯分布的标准差,用于控制滤波器的模糊程度。

去除高斯噪声的matlab代码

去除高斯噪声的matlab代码

去除高斯噪声的matlab代码(最新版)目录1.介绍高斯噪声2.解释去除高斯噪声的方法3.提供 MATLAB 代码示例4.总结正文1.介绍高斯噪声高斯噪声是一种常见的随机噪声,具有对称的高斯分布特性。

在信号处理领域,高斯噪声常常会对信号的质量和可靠性产生影响,因此去除高斯噪声是一项重要的任务。

2.解释去除高斯噪声的方法去除高斯噪声的方法有很多,其中一种常见的方法是使用滤波器。

滤波器可以根据信号的特性设计,以去除噪声。

常见的滤波器类型包括低通滤波器、高通滤波器和带通滤波器。

3.提供 MATLAB 代码示例以下是一个使用 MATLAB 去除高斯噪声的示例代码:```matlab% 生成带有高斯噪声的信号= 100;t = (0:n-1)"/n;s = 3*sin(2*pi*10*t) + 2*cos(2*pi*30*t) + 0.1*randn(n,1);% 使用低通滤波器去除高斯噪声fs = 100; % 采样频率[n, f] = freqz(s, 1, n); % 计算信号的频率响应f = f(1:n/2); % 提取频率[b, a] = butter(2, f); % 设计低通滤波器s_filtered = filter(b, a, s);% 绘制原始信号和滤波后的信号figure;subplot(2,1,1); plot(t, s); title("原始信号");xlabel("时间 (s)");ylabel("幅值");subplot(2,1,2); plot(t, s_filtered); title("滤波后的信号");xlabel("时间 (s)");ylabel("幅值");```在这个示例中,我们首先生成了一个带有高斯噪声的信号。

然后,我们使用低通滤波器去除噪声。

matlab让二维矩阵数据变平滑的方法

matlab让二维矩阵数据变平滑的方法

matlab让二维矩阵数据变平滑的方法MATLAB中有多种方法可以用来使二维矩阵数据变得平滑。

本文将介绍其中的两种常用方法:平均滤波和高斯滤波。

平均滤波是一种简单且直观的方法,通过计算每个像素周围的邻域像素的平均值来实现平滑。

在MATLAB中,可以使用imfilter函数来实现平均滤波。

以下是具体的步骤:1. 加载图像并转换为灰度图像。

你可以使用imread函数加载图像,并用rgb2gray函数将其转换为灰度图像。

2. 定义滤波器。

平均滤波器是一个具有相同权重的n×n大小的方形内核,其中n是奇数。

你可以使用fspecial函数来定义平均滤波器。

例如,h = fspecial('average', [3 3]) 将创建一个3×3的平均滤波器。

3. 对图像进行滤波。

使用imfilter函数将滤波器应用于图像。

例如,filtered = imfilter(image, h) 将对图像进行平均滤波,并将结果保存到filtered变量中。

通过改变滤波器的大小,你可以调整平滑的程度。

较小的滤波器将产生较弱的平滑效果,而较大的滤波器则会产生更明显的平滑效果。

然而,使用较大的滤波器也可能导致图像细节的丢失。

高斯滤波是一种基于高斯函数的平滑方法,它在平滑过程中考虑了像素之间的距离。

与平均滤波相比,高斯滤波可以更好地保留图像细节。

以下是使用MATLAB进行高斯滤波的步骤:1. 加载图像并转换为灰度图像,同样使用imread和rgb2gray函数。

2. 定义高斯滤波器。

与平均滤波器不同,高斯滤波器将在内核中应用不同的权重。

你可以使用fspecial函数来定义高斯滤波器。

例如,h = fspecial('gaussian', [5 5], 2) 将创建一个5×5的高斯滤波器,标准差为2。

3. 对图像进行滤波,同样使用imfilter函数。

例如,filtered= imfilter(image, h) 将对图像进行高斯滤波,并将结果保存到filtered变量中。

matlab做gaussian高斯滤波

matlab做gaussian高斯滤波

matlab做gaussian⾼斯滤波核⼼提⽰在Matlab中⾼斯滤波⾮常⽅便,主要涉及到下⾯两个函数:函数: fspecial函数: imfilter代码实现clear all;clc;%----------------------------------------------%对图像进⾏⾼斯滤波,并显⽰图像%----------------------------------------------%读进图像[filename, pathname] = uigetfile({'*.jpg'; '*.bmp'; '*.gif'; '*.png' }, '选择图⽚');%没有图像if filename == 0return;endImage = imread([pathname, filename]);[m, n, z] = size(Image);%转换为灰度图if z>1Image = rgb2gray(Image);endsigma = 1;gausFilter = fspecial('gaussian', [5,5], sigma);gaus= imfilter(Image, gausFilter, 'replicate');%显⽰图像-----------------------figure(1)subplot(1,2,1);imshow(Image);title('原图像');subplot(1,2,2);imshow(gaus);title('滤波后');效果展⽰————————————————版权声明:本⽂为CSDN博主「祥知道」的原创⽂章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原⽂出处链接及本声明。

原⽂链接:https:///humanking7/article/details/46826105Gauss滤波快速实现⽅法(转) ⼆维⾼斯函数具有旋转对称性,处理后不会对哪⼀个⽅向上的边缘进⾏了过多的滤波,因此相对其他滤波器,具有⽆法⽐拟的优越性。

matlabcanny边缘检测代码接霍夫变换-概述说明以及解释

matlabcanny边缘检测代码接霍夫变换-概述说明以及解释

matlabcanny边缘检测代码接霍夫变换-概述说明以及解释1.引言1.1 概述边缘检测是图像处理中的一个重要任务,它广泛应用于计算机视觉、图像分析和模式识别等领域。

边缘检测的目标是找到图像中不同区域之间的边界,并将其表示为像素强度的变化。

Canny边缘检测算法是一种经典且常用的边缘检测方法。

它通过一系列的图像处理步骤来提取图像中的边缘信息。

Canny算法的特点是能够检测出细且准确的边缘,并且对于图像中的噪声具有较好的抵抗能力。

Matlab是一种功能强大的数学软件,广泛应用于科学计算、数据可视化和图像处理等领域。

Matlab提供了丰富的图像处理函数和工具箱,其中包括了Canny边缘检测的实现代码。

本文的主要目的是介绍Matlab中Canny边缘检测的代码实现,并结合Hough变换算法进行边缘检测的应用。

通过使用Matlab中的相关函数和工具,我们可以有效地实现Canny边缘检测,并结合Hough变换来进一步处理和分析图像中的边缘特征。

本文将首先回顾Canny边缘检测算法的原理和步骤,然后介绍Matlab中的Canny边缘检测代码的使用方法。

接着,我们将介绍Hough 变换算法的原理和应用,并展示如何将Canny边缘检测与Hough变换相结合来实现更精确的边缘检测。

最后,我们将对Canny边缘检测和Hough变换的优缺点进行讨论,总结这两种方法在边缘检测中的应用。

同时,我们也将展望未来的研究方向,探讨如何进一步改进和优化边缘检测算法,以满足不断发展的图像处理需求。

通过阅读本文,读者将能够理解Canny边缘检测算法和Hough变换算法的原理,掌握Matlab中相关代码的使用方法,并了解边缘检测在实际应用中的优势和局限性。

希望本文能为读者在图像处理领域的学习和研究提供一定的帮助和启示。

文章结构是指文章的整体框架和组织形式。

一个良好的文章结构可以使读者更好地理解和领会文章的内容,同时也有助于文章的逻辑性和条理性。

matlab 高斯滤波的点数-概述说明以及解释

matlab 高斯滤波的点数-概述说明以及解释

matlab 高斯滤波的点数-概述说明以及解释1.引言1.1 概述高斯滤波是一种常用的图像滤波方法,其基本原理是通过对图像中的每个像素点周围的像素值进行加权平均,从而达到平滑图像的效果。

与其他滤波方法相比,高斯滤波具有较好的平滑效果和保持图像细节的能力。

因此,在图像处理、计算机视觉和模式识别等领域被广泛应用。

本文旨在探讨高斯滤波中滤波器的点数对滤波效果的影响。

高斯滤波器的点数是指滤波器的大小,即滤波器矩阵的行列数。

常见的滤波器大小有3x3、5x5、7x7等不同的尺寸。

不同的滤波器大小会使高斯滤波的平滑效果和处理速度有所变化,因此选择合适的滤波器大小对于实际应用非常重要。

在正文部分,我们将介绍高斯滤波的原理及其应用领域。

随后,我们将着重探讨高斯滤波中滤波器大小的参数设置以及其对滤波效果的影响。

进一步地,我们将总结高斯滤波的优点,并提出改进高斯滤波算法的建议。

最后,展望高斯滤波的未来发展,希望为读者提供一个全面了解高斯滤波的视角。

通过本文的阅读,读者将能够了解到高斯滤波的基本原理、应用领域以及它在图像处理中的参数设置及其影响。

希望本文能够对读者在实际应用中选择合适的滤波器大小提供一定的参考和指导。

1.2文章结构文章结构主要包括引言、正文和结论三个部分。

引言部分旨在简要介绍文章的研究背景和目的,为读者提供对文章后续内容的预期。

正文部分是文章的主体部分,详细介绍了高斯滤波的原理、应用和参数设置等内容。

结论部分对前文进行总结,总结高斯滤波的优点,并提出改进高斯滤波算法的建议,并展望高斯滤波的未来发展趋势。

为了让读者更好地理解文章的结构,以下是各部分的详细内容概述:1. 引言1.1 概述在引言的概述部分,可以简要介绍高斯滤波的概念和在图像处理中的重要性。

可以提及高斯滤波是一种常用的线性平滑滤波器,可用于去除图像中的噪声和平滑图像。

1.2 文章结构在引言的文章结构部分,将详细介绍文章的组织结构。

可以指出文章分为引言、正文和结论三个部分,并简要介绍各部分的内容概述。

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

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为核函数中心,σ为函数的宽度参数, 控制了函数的径向作用范围。

高斯函数具有五个重要的性质,这些性质使得它在早期图像处理中特别有用.这些性质表明,高斯平滑滤波器无论在空间域还是在频率域都是十分有效的低通滤波器,且在实际图像处理中得到了工程人员的有效使用.高斯函数具有五个十分重要的性质,它们是:(1)二维高斯函数具有旋转对称性,即滤波器在各个方向上的平滑程度是相同的.一般来说,一幅图像的边缘方向是事先不知道的,因此,在滤波前是无法确定一个方向上比另一方向上需要更多的平滑.旋转对称性意味着高斯平滑滤波器在后续边缘检测中不会偏向任一方向.(2)高斯函数是单值函数.这表明,高斯滤波器用像素邻域的加权均值来代替该点的像素值,而每一邻域像素点权值是随该点与中心点的距离单调增减的.这一性质是很重要的,因为边缘是一种图像局部特征,如果平滑运算对离算子中心很远的像素点仍然有很大作用,则平滑运算会使图像失真.(3)高斯函数的付立叶变换频谱是单瓣的.正如下面所示,这一性质是高斯函数付立叶变换等于高斯函数本身这一事实的直接推论.图像常被不希望的高频信号所污染(噪声和细纹理).而所希望的图像特征(如边缘),既含有低频分量,又含有高频分量.高斯函数付立叶变换的单瓣意味着平滑图像不会被不需要的高频信号所污染,同时保留了大部分所需信号.(4)高斯滤波器宽度(决定着平滑程度)是由参数σ表征的,而且σ和平滑程度的关系是非常简单的.σ越大,高斯滤波器的频带就越宽,平滑程度就越好.通过调节平滑程度参数σ,可在图像特征过分模糊(过平滑)与平滑图像中由于噪声和细纹理所引起的过多的不希望突变量(欠平滑)之间取得折衷.(5)由于高斯函数的可分离性,大高斯滤波器可以得以有效地实现.二维高斯函数卷积可以分两步来进行,首先将图像与一维高斯函数进行卷积,然后将卷积结果与方向垂直的相同一维高斯函数卷积.因此,二维高斯滤波的计算量随滤波模板宽度成线性增长而不是成平方增长.四、高斯平滑滤波器的设计高斯函数的最佳逼近由二项式展开的系数决定,换句话说,用杨辉三角形(也称Pascal三角形)的第n行作为高斯滤波器的一个具有n个点的一维逼近,例如,五点逼近为: 1 4 6 4 1它们对应于Pascal三角形的第5行.这一模板被用来在水平方向上平滑图像.在高斯函数可分离性性质中曾指出,二维高斯滤波器能用两个一维高斯滤波器逐次卷积来实现,一个沿水平方向,一个沿垂直方向.实际中,这种运算可以通过使用单个一维高斯模板,对两次卷积之间的图像和最后卷积的结果图像进行转置来完成.这一技术在模板尺寸N约为10时的滤波效果极好.对较大的滤波器,二项式展开系数对大多数计算机来说都太多.但是,任意大的高斯滤波器都能通过重复使用小高斯滤波器来实现.高斯滤波器的二项式逼近的σ可用高斯函数拟合二项式系数的最小方差来计算.设计高斯滤波器的另一途径是直接从离散高斯分布中计算模板权值。

为了计算方便,一般希望滤波器权值是整数。

在模板的一个角点处取一个值,并选择一个K使该角点处值为1。

通过这个系数可以使滤波器整数化,由于整数化后的模板权值之和不等于1,为了保证图像的均匀灰度区域不受影响,必须对滤波模板进行权值规范化。

高斯滤波器的采样值或者高斯滤波器的二项式展开系数可以形成离散高斯滤波器.当用离散高斯滤波器进行卷积时,其结果是一个更大的高斯离散滤波器.若一幅图像用N*N离散高斯滤波器进行平滑,接着再用M*M离散高斯滤波器平滑的话,那么平滑结果就和用(N+M-1)*(N+M-1)离散高斯滤波器平滑的结果一样.换言之,在杨辉三角形中用第N 行和第M行卷积形成了第N+M-1行.五、具体实现二维高斯函数: 2222222),(σσr y x Ae Ae y x G -+-== 当时, ; 时, 一般用宽度小于的滤波器,即 当 时,由连续Gaussian 分布求离散模板,需采样、量化,并使模板归一化。

举例结果如下:图1 原图像lenna 图1 有噪声的lenna图中的噪声是高斯白噪声。

图3 高斯滤波,σ2=1选取不同参数σ的高斯滤波模板,平滑的效果是有差别的,实际上σ越大其作用域就越宽,即平滑窗口越大,因而平滑的力度就越大,其结果使得图象变得越模糊。

当σ很大时,由于量化的影响,高斯滤波实际上就变成邻域平均了。

该图使用σ2=1即模板尺度为5x5的高斯滤波器。

图4 高斯滤波,σ2=3可以看到高斯滤波虽然能够在一定程度上去掉噪声,但也使得图象变得模糊不清,效果并不能令人满意。

该图使用σ2=3即模板尺度为13x13的高斯滤波器。

图象变得更模糊些。

MATLAB 程序:%%%%%%%%%%%%% The main.m file %%%%%%%%%%%%%%%clc;% Parameters of the Gaussian filter:n1=5;sigma1=3;n2=5;sigma2=3;theta1=0;[w,map]=imread('lenna.gif');x=ind2gray(w,map);filter1=d2gauss(n1,sigma1,n2,sigma2,theta1);y=imnoise(x,'gauss',0.01);f1=conv2(x,filter1,'same');rf1=conv2(y,filter1,'same');figure(1);subplot(2,2,1);imagesc(x);title('lenna');subplot(2,2,2);imagesc(y);title('noisy lenna');subplot(2,2,3);imagesc(f1);title('smooth');subplot(2,2,4);imagesc(rf1);title('noise cancel');colormap(gray);%%%%%%%%%%%%%% End of the main.m file %%%%%%%%%%%%%%%% Function "d2gauss.m":% This function returns a 2D Gaussian filter with size n1*n2; theta is% the angle that the filter rotated counter clockwise; and sigma1 and sigma2% are the standard deviation of the Gaussian functions.function h = d2gauss(n1,std1,n2,std2,theta)r=[cos(theta) -sin(theta);sin(theta) cos(theta)];for i = 1 : n2for j = 1 : n1u = r * [j-(n1+1)/2 i-(n2+1)/2]';h(i,j) = gauss(u(1),std1)*gauss(u(2),std2);endendh = h / sqrt(sum(sum(h.*h)));% Function "gauss.m":function y = gauss(x,std)y = exp(-x^2/(2*std^2)) / (std*sqrt(2*pi));%%%%%%%%%%%%%% End of the functions %%%%%%%%%%%%%%%%。

相关文档
最新文档