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为高斯模版。