matlab 中值滤波

matlab 中值滤波,第1张

1、中值滤波的原理:对于一串连续输入的信号(量化后是一组数据)。如下图所示,是输入的原信号。中值滤波的原理为,重新计算每一个x的输出值(y),新的输出值。

相当于y=new(x),new的 *** 作是,从在以x为中心,长度为2k的原信号中(区间为[x-k+1,x+k]),提取出这段区间内中间的那个值,作为y=new(x)的结果。

2、举例来说,输入:Y[1-10]:1,2,3,4,5,6,7,8,9,10.取区间2k=4,所以k=2执行中值滤波K=中值滤波(Y)、由x-k+1>=1,所以当k=2时,x>=2、滤波时:

K[1]=Y[1]

K[2]=(Y[1]、Y[2]、Y[3]、Y[4])的中间值,即为2或3。

3、matlab的中值滤波实现方式:调用函数:A=medfilt1(B,n)、B为输入信号,A为滤波后的信号,即结果。

4、对于输入信号(最开头的图),以下分别为设置区间n=8和n=16得到的滤波图像。中值滤波可以过滤尖峰脉冲。目的在于我们对于滤波后的数据更感兴趣。滤波后的数据保留的原图像的变化趋势,同时去除了尖峰脉冲对分析造成的影响。

MATLAB数值滤波处理方法有:

首先关于fspecial函数的定义,fspecial函数用于建立预定义的滤波算子。

其语法格式为:  

h = fspecial(type)  

h = fspecial(type,para)

其中type指定算子的类型,para指定相应的参数;

函数type的类型有:

1、'average'averaging filter为均值滤波,参数为hsize代表模板尺寸,默认值为[3,3]。

函数格式:H = fspecial('average',hsize)

2、 'disk'circular averaging filter为圆形区域均值滤波,参数为radius代表区域半径,默认值为5。

函数格式:H = fspecial('disk',radius)

3、'gaussian'Gaussian lowpass filter为高斯低通滤波,有两个参数,hsize表示模板尺寸,默认值为[3 3],sigma为滤波器的标准值,单位为像素,默认值为0.5。

函数格式:H = fspecial('gaussian',hsize,sigma)

4、'laplacian' filter approximating the 2-D Laplacian operatorlaplacian filter为拉普拉斯算子,参数alpha用于控制算子形状,取值范围为[0,1],默认值为0.2.

函数格式:H = fspecial('laplacian',alpha)

5、'log'Laplacian of Gaussian filter为拉普拉斯高斯算子,有两个参数,hsize表示模板尺寸,默认值为[3 3],sigma为滤波器的标准差,单位为像素,默认值为0.5。

函数格式:H = fspecial('log',hsize,sigma)

6、'motion'motion filter运动模糊算子,有两个参数,表示摄像物体逆时针方向以theta角度运动了len个像素,len的默认值为9,theta的默认值为0。

函数格式:H = fspecial('motion',len,theta)

7、'prewitt'Prewitt horizontal edge-emphasizing filter用于边缘增强,大小为[3 3],无参数。

函数格式:H = fspecial('prewitt')

8、'sobel'Sobel horizontal edge-emphasizing filter用于边缘提取,无参数

函数格式:H = fspecial('sobel')the filter H: H'.9、'unsharp'unsharp contrast enhancement filter为对比度增强滤波器。参数alpha用于控制滤波器的形状,范围为[0,1],默认值为0.2.函数格式:H = fspecial('unsharp',alpha)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11588464.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存