matlab图像预处理中值滤波y与双边滤波

中值滤波

前面所说的高斯平滑和均值滤波也是预处理的一种,不过他们用牺牲图像细节为代价来换取平滑图像,他们对处理小的噪声点比较好,但是处理较大的噪声点比较无力。
平滑线性滤波器的工作原理可以比喻为用水冲洗桌面上的污点,冲洗的结果是污点并没有消失,只是被淡化,如果污点较大,较密集,则冲洗的结果是整个桌面都被污点所影响。而中值滤波的做法就是不去 采用冲洗冲淡的方式,直接将污点剔除。
在Matlab中可以使用函数medfilt2()实现中值滤波,但是这个函数仅仅智能用于处理灰度图像。

I2=medfilt2(I1,[m,n])

其中I1是待处理图像的像素矩阵,参数m,n给出了中值滤波处理模板的大小,默认为3*3。
下面的代码是同时对比了均值滤波,高斯滤波和中值滤波三种对于椒盐噪声的去除效果。

i=rgb2gray(imread('songshu.jpg'));
inoise=imnoise(i,'salt & pepper');
w1=[1 2 1;2 4 2;1 2 1]/16;
output1=imfilter(inoise,w1,'conv','replicate');
w2=[1 1 1;1 1 1;1 1 1]/9;
output2=imfilter(inoise,w2,'conv','replicate');
output3=medfilt2(inoise,[3,3]);
%高斯滤波
subplot(131),imshow(output1);
%均值滤波
subplot(132),imshow(output2);
%中值滤波
subplot(133),imshow(output3);

双边滤波

I=imread('songshu.jpg');
I=double(I)/255;
w=5;
sigma=[3 0.1];
B=bilateral_filter(I,w,sigma);
subplot(144),imshow(B);

貌似matlab2015b版本会报错,bfilter2函数和上面用的函数好像都找不到,有大神会的可以私信我。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值