matlab与数字滤波技术,如中值法,算术平均法等有干什么关系?

来源:百度知道 编辑:UC知道 时间:2024/05/20 19:13:59
matlab是有设计滤波器,那怎么用到数字滤波技术,有那些数字滤波技术(如中值法,算术平均法等)的函数还是怎么回事?那些函数是什么??

首先要知道很多滤波器其实就相当于做一个卷积,因此只要用卷积函数conv2就可以了。比如用laplace算子做图像锐化,只要令h=[0 1 0;1 -4 1;0 1 0],然后只要将图像矩阵I和h做卷积conv2(I,h)即可。算术平均就更简单了,3×3只要令h=ones(3)/9,然后再conv2(I,h)即可。

有些常用滤波有相应的函数,如中值滤波medfilt2,排序滤波ordfilt2,维纳滤波wiener2等。

对图像做滤波有专用的函数imfilter(I,h),用法与conv2相似(当然这里省去了很多可选参数)。对于h也有很多预定义滤波器,可以用命令h=fspecial('类型',参数)定义,如h=fspecial('motion',50,45),相当于做一个移动长度为50像素,转动角度为45°的运动滤波器。更多的类型和参数自己看help文档。

但是请务必认清一点:matlab提供的滤波函数和滤波器都是相当成熟和常用的。如果是很新的滤波器或者你要进行改进,那么必须自己编写程序!