看到网上很多介绍均值滤波和中值滤波的程序和代码,代码很全,拷贝下来,运行完全没有问题,可如果你换个图片,很意外,你的程序会报警,为什么呢,很多高手也许会不屑一顾,可我相信很多初学者也许会体验到我所感受到的迷茫和失望,搜索完全不得要领,这里我就要对均值滤波,中值滤波进行阐述:
1.均值滤波就是对一个像素,取其周围的像素均值作为当前像素的值
2.中值滤波就是对一个像素,取其周围的像素中间值作为当前像素的值
3.很多人也许会问周围的像素到底是多少周围,包不包括该像素值,这完全依你自己的兴趣,你可以包括当前像素值,也可以不包括,你可以选取当前像素值的上下左右,左上,左下,甚至更远,至于哪个效果好,应该视具体情况,对比才知好歹!
4.重要的一点,MATLAB里的中值滤波函数medfilt2只适用二维矩阵,这就意味着对彩色图像,均值滤波函数medfilt2是不能运行的,若想运行,可对彩色图像的R,G,B三分量分别用medfilt2,再合成,但效果不行。
5就效果而言,中值滤波效果更好,这可能与大家的常识相矛盾,但想到下面的一点你也许会有所感悟:中值滤波的值在像素里确实存在,而均值却可能出现一个陌生的值。