中值滤波器

自编中值滤波器

算法思想:
中值滤波器除了滤波处理和均值滤波处理方式不同,其余扩大原图、裁剪等都相同。中值滤波器是在滤波器处理窗口中,将像素值排序,并选取排序后的中值存到第二个扩大的零矩阵中对应滤波器选取的中心元素位置。

function mediI = medi_filter(I,n)
%I为处理的图像,n为滤波器的大小
[r,c]=size(I);  %图像的行和列
dI=double(I);
dt=n-1;  %边缘需要扩充的距离
f=zeros(r+dt,c+dt);  %对边缘进行0值处理,根据滤波器的大小把图像扩大
fi=zeros(r+dt,c+dt); %将处理后的元素存到fi中
for i=1:r  
    for j=1:c
      f((i+dt/2),(j+dt/2))=dI(i,j);%扩充后的原图
    end
end
w=zeros(1,n*n);
for i=1+dt/2:r+dt/2  %对滤波器中的元素排序并选择出中心元素
    for j=1+dt/2:c+dt/2
        w=f((i-dt/2):(i+dt/2),(j-dt/2):(j+dt/2));%将滤波器选中的元素排序
        sortw=sort(w);
        fi(i,j)=sortw((n*n+1)/2); %将与模板运算后的各元素的均值赋给模板中心位置的元素
    end
end
mediI=zeros(r,c); %裁剪
for i=1:r
    for j=1:c
        mediI(i,j)=fi(i+dt/2,j+dt/2);  %将扩大的图像转变为原图大小
    end
end
end

中值滤波器会取到滤波器中的值计算,当存在噪声是会影响计算的值,会影响图片的清晰度。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值