中值滤波去除图像噪声的matlab程序
Posted Julye
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了中值滤波去除图像噪声的matlab程序相关的知识,希望对你有一定的参考价值。
中值滤波:基于排序理论的一种能有效抑制噪声的非线性信号处理技术。
方法:取含有基数(偶数会有半像素的差)个模板数据的滑动模板,对模板中的数据从小到大排序,取排在中间位置上的数据作为最终的处理结果。
matlab程序:
[height, width]=size(result2); x1=double(result2); x2=x1; n=3; for i=1:height-n+1 for j=1:height-n+1 c=x1(i:i+(n-1),j:j+(n-1)); e=c(1,:); for u=2:n e=[e,c(u,:)]; end m=median(e); x2(i+(n-1)/2,j+(n-1)/2)=m; end end imshow(uint8(x2));
对椒盐噪声的处理结果:
对高斯噪声的处理结果:
由以上对两种造声滤波结果可以看出:
对于椒盐噪声,其只在画面中部分点随机出现,通过中值滤波,数组排序,其被污染的点排在边上,中间为未被污染的点,将未被污染的点替代噪声点,因此滤波效果很好,画面的清晰度也基本保持;而对于高斯噪声,由于高斯噪声以随机大小的幅值污染所有的点,无论怎样滤波,得到的还是被污染的值,因此滤波效果不是特别好。
以上是关于中值滤波去除图像噪声的matlab程序的主要内容,如果未能解决你的问题,请参考以下文章