数字图像处理——中值滤波

原理:模板中心对准待处理像素,对模板下的对应像素进行灰度值排序,将中值赋给当前像素

Matlab代码:

clear,clc;
car = imread('sport car.pgm');
noise_car = imnoise(car,'salt & pepper',0.02);
[h,w] = size(car);
% zeros padding
new_car1 = zeros(h+2,w+2);
new_car1(2:h+1,2:w+1) = noise_car;
copy_car = double(new_car1);
% 滑动窗口,进行中值滤波
for i = 2:h+1
    for j = 2:w+1
        mask = copy_car(i-1:i+1,j-1:j+1);   % 获得当前mask
        new_car1(i,j) = median(mask(:));
    end
end
new_car1 = new_car1(2:h+1,2:w+1);
new_car1 = uint8(new_car1);
new_car2 = medfilt2(noise_car,[3,3]);   % 调用medfilt2()函数

figure;
subplot(121),imshow(car),title('原图像');
subplot(122),imshow(noise_car),title('椒盐噪声图像');
figure;
subplot(121),imshow(new_car1),title('中值滤波图像');
subplot(122),imshow(new_car2),title('中值滤波图像(medfilt2)')

运行结果:

 

 

 

  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值