matlab实现图像高斯滤波 - 可可洁儿

时间:2024-02-18 14:27:08

matlab实现图像高斯滤波

OriImage=imread(\'D:\图片\Pinned\2_110624211810_1.jpg\');    %读入图片
sigma1 = 10;           %高斯正态分布标准差
grayImg=rgb2gray(OriImage);    %转为灰度图像
gausFilter = fspecial(\'gaussian\',[5 5],sigma1);   %高斯滤波
blur=imfilter(grayImg,gausFilter,\'replicate\');        %对任意类型数组或多维图像进行滤波 
imshow(blur)

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 fspecial函数详解

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

0.5。
type= \'laplacian\',为拉普拉斯算子,参数为alpha,用于控制拉普拉斯算子的形状,取值范围为[0,1],默认值为0.2。
type= \'log\',为拉普拉斯高斯算子,参数有两个,n表示模版尺寸,默认值为[3,3],sigma为滤波器的标准差,单位为像素,默认值为0.5
type= \'prewitt\',为prewitt算子,用于边缘增强,无参数。
type= \'sobel\',为著名的sobel算子,用于边缘提取,无参数。
type= \'unsharp\',为对比度增强滤波器,参数alpha用于控制滤波器的形状,范围为[0,1],默认值为0.2。

 

例子:

>> G=fspecial(\'gaussian\',5)%参数为5,表示产生5*5的gaussian矩阵,如果没有,默认为3*3的矩阵。

G =

    0.0000    0.0000    0.0002    0.0000    0.0000
    0.0000    0.0113    0.0837    0.0113    0.0000
    0.0002    0.0837    0.6187    0.0837    0.0002
    0.0000    0.0113    0.0837    0.0113    0.0000
    0.0000    0.0000    0.0002    0.0000    0.0000

>> G=fspecial(\'gaussian\',5,1.5)%1.5为滤波器的标准差。

G =

    0.0144    0.0281    0.0351    0.0281    0.0144
    0.0281    0.0547    0.0683    0.0547    0.0281
    0.0351    0.0683    0.0853    0.0683    0.0351
    0.0281    0.0547    0.0683    0.0547    0.0281
    0.0144    0.0281    0.0351    0.0281    0.0144

>> 

>> G=fspecial(\'average\')%默认为3*3的矩阵。均值滤波

G =

    0.1111    0.1111    0.1111
    0.1111    0.1111    0.1111
    0.1111    0.1111    0.1111

>> G=fspecial(\'average\',5)%会产生5*5的矩阵。

****************************************************************************************************************************************************************************************

 imfilter函数讲解

函数语法:g=imfilter(f,w,filtering_mode,boundary_options,size_optinos) 

函数功能:对任意类型数组或多维图像进行滤波 
参数介绍:f是输入图像,w为滤波模板,g为滤波结果。

 操作说明:在执行线性空间滤波函数imfilter时,我们必须清晰的理解两个意义相近的概念。一个是相关 (corr);另一个是卷积(conv)。