中值滤波 matlab程序实现(一)

中值滤波:基于排序统计理论的一种能有效抑制噪声的非线性平滑滤波信号处理技术。中值滤波的特点即是首先确定一个以某个像素为中心点的邻域,一般为方形邻域,也可以为圆形、十字形等等,然后将邻域中各像素的灰度值排序,取其中间值作为中心像素灰度的新值,这里领域被称为窗口,当窗口移动时,利用中值滤波可以对图像进行平滑处理。其算法简单,时间复杂度低,但其对点、线和尖顶多的图像不宜采用中值滤波。很容易自适应化。中值滤波对椒盐噪声抑制很好,对高斯噪声抑制一般。 

clc
close all
f=[1 2 1 4 3;
   1 10 2 3 4;
   5 2 6 8 8;
   5 5 7 0 8 ;
   5 6 7 8 9];
[row, col]=size(f);
k=f;
for r=2:row-1
    for c=2:col-1
        m=ones(3, 3);
        n=ones(3, 3);
        b=k;
        n(2,2)=b(r,c);    %22
        n(1,1)=b(r-1,c-1);%11
        n(1,2)=b(r-1,c);  %12       
        n(1,3)=b(r-1,c+1);%13
        n(2,1)=b(r,c-1);  %21
        n(3,1)=b(r+1,c-1);%31
        n(3,2)=b(r+1,c);  %32
        n(2,3)=b(r,c+1);  %23
        n(3,3)=b(r+1,c+1); %33
        out=n.*m;
        mid=median(out(:));
        f(r,c)=mid;       
    end
end

原来的f矩阵: 

中值滤波后:

 

%%%median函数能取一列或者一行数的中值

编的这个有点菜

问题:确定一个点,其邻域怎么定

  • 5
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值