首页 > 其他 > 详细

图像的高斯平滑滤波

时间:2019-03-19 17:58:20      阅读:254      评论:0      收藏:0      [点我收藏+]

1:高斯平滑与滤波的作用

通过高斯平滑使整个图片过渡均匀平滑,去除细节,过滤掉噪声。

2:高斯平滑滤波器简介

高斯平滑滤波器被使用去模糊图像,和均值滤波器差不多,但是和均值滤波器不一样的地方就是核不同。均值滤波器的核每一个值都是相等,而高斯平滑滤波器的核内的数却是呈现高斯分布的。

对于二维高斯分布:

 技术分享图片

 

 高斯函数具有5个重要性质:

(1)二维高斯函数具有旋转对称性, (2)高斯函数是单值函数。这表明,高斯滤波器用像素邻域的加权均值来代替该点的像素值,而每一邻域像素点的权值是随着该点与中心点距离单调递减的。 (3)高斯函数的傅立叶变换频谱是单瓣的。 (4)高斯滤波器的宽度(决定着平滑程度)是由参数σ表征的,而且σ和平滑程度的关系是非常简单的。σ越大,高斯滤波器的频带就越宽,平滑程度就越好。 (5)可分离性

它的分布图如下:

 技术分享图片

 

作为高斯平滑滤波器的核就应该呈现出上图的布局,例如:

 

 技术分享图片

是一个5*5的模版

对于高斯函数参数σ值越大,则模分布图越扁平,模版越大。

上图分布凸显出了高斯该有的特点,因此,一般而言,高斯平滑滤波器要优于均值滤波器。

 

3:函数实现

3.1二维高斯函数

 

1 X = -50 : 1 :50;
2 Y = -50 : 1: 50;
3 sigma=50;
4 [X,Y]=meshgrid(X,Y);
5 W=exp(-(X.^2+Y.^2)/sigma.^2);
6 Z=W/2*pi*sigma.^2
7 mesh(X,Y,Z);
8 title(权重分布图);

 

技术分享图片

 

3.2高斯滤波

 1 im=imread(D:\a2.jpg);
 2 imshow(im,[]);//1
 3 title(原图);
 4 J=imnoise(im,gaussian);//加上高斯噪声
 5 figure
 6 imshow(J,[]);
 7 title(加高斯噪声图);
 8 f1=fspecial(gaussian,[3 3],0.5);//2生成高斯模版
 9 img_smooth1=imfilter(J,f1);//3滤波
10 figure
11 subplot 221
12 imshow(img_smooth1,[]);
13 title(0.5);
14 
15 f2=fspecial(gaussian,[3 3],1);
16 img_smooth2=imfilter(J,f2);
17 subplot 222
18 imshow(img_smooth2,[]);
19 title(1);
20 
21 f3=fspecial(gaussian,[3 3],2);
22 img_smooth3=imfilter(J,f3);
23 subplot 223
24 imshow(img_smooth3,[]);
25 title(2);
26 
27 f4=fspecial(gaussian,[3 3],4);
28 img_smooth4=imfilter(J,f4);
29 subplot 224
30 imshow(img_smooth4,[]);
31 title(4);
32 
33 f5=fspecial(gaussian,[3 3],8);
34 img_smooth5=imfilter(J,f5);
35 figure
36 subplot 121
37 imshow(img_smooth5,[]);
38 title(8);
39 
40 f6=fspecial(gaussian,[3 3],10);
41 img_smooth6=imfilter(J,f6);
42 subplot 122
43 imshow(img_smooth6,[]);
44 title(10);

 运行结果如下

 技术分享图片

技术分享图片

技术分享图片

技术分享图片

 

由实验结果可知,随着σ值的增大,噪声滤除的越干净,但同时,图像也变得越模糊,轮廓不清晰。当σ增加到一定的程度时,滤波效果几乎没有变化,所以要选取合适的σ值。

  

4:函数介绍

 注释1

语法:imshow ( f, G) 
          imshow (f, [low high])
          imshow (f, [ ])
说明:G是显示该图像的灰度级数;
      小于或等于low的值都显示为黑色,大于或等于high的值都显示为白色。
          [ ]自动将变量low设置为f的最小值,将high设置为f的最大值

注释2

Fspecial函数用于创建预定义的滤波算子,其语法格式为:
h = fspecial(type)
h = fspecial(type,parameters,sigma)
参数type制定算子类型,parameters指定相应的参数,具体格式为:
type=‘average‘,为均值滤波,参数为n,代表模版尺寸,用向量表示,默认值为[3,3]。
type= ‘gaussian‘,为高斯低通滤波器,参数有两个,n表示模版尺寸,默认值为[3,3],sigma表示滤波器的标准差,

注释3

imfilter(J,f1)

J为待处理的图像,f为高斯模版。

 

图像的高斯平滑滤波

原文:https://www.cnblogs.com/henuliulei/p/10559954.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!