matlab均值滤波实现

一、噪声添加
椒盐噪声:

I_noise=double(imnoise(I,'salt & pepper',0.02));%后面0.02为参数

高斯噪声:

I_noise=double(imnoise(I,'gaussian',0.02));

二、均值滤波原理
主要思想为邻域平均法,即用几个像素灰度的平均值来代替每个像素的灰度。有效抑制加性噪声。
缺点:容易引起图像模糊,可以对其进行改进,主要避开对景物边缘的平滑处理。

原像素值:
|1|2|3|
|4|5|6|
|7|8|9|

均值后:(123456789去均值为5,放在中心位置,由此可见均值滤波会忽略掉四周的像素值,四周会变得模糊)
| | | |
| |5| |
| | | |

以下代码分别添加了 高斯噪声和椒盐噪声 然后进行均值滤波处理

  1. 对椒盐噪声的各种均值滤波处理
%均值滤波
%椒盐噪声部分
figure(2);
%显示原图
subplot(2,3,1);
imshow(I,[]);%[]自动产生适当的比例显示图像
title('原图');
%添加椒盐信号
subplot(2,3,2);
I_noise=double(imnoise(I,'salt & pepper',0.02));%salt & pepper注意中间的空格 无空格报错
imshow(I_noise,[]);title('椒盐噪声');
%均值滤波
subplot(2,3,3);
I_3=fspecial('average',[3,3]);%3*3均值滤波
I_3=imfilter(I_noise,I_3);
imshow(I_3,[]);title('3*3算数均值滤波');
subplot(2,3,4);
I_=exp(imfilter(log(I_noise),fspecial('average',3)));%算数均值滤波
imshow(I_,[]);title('3*3几何均值滤波');

subplot(2,3,5);
Q=-1.5;
I_mean=imfilter(I_noise.^(Q+1),fspecial('average',3))./imfilter(I_noise.^Q,fspecial('average',3));
imshow(I_mean,[]);title('Q=-1.5逆谐波滤波器滤波');

subplot(2,3,6);
Q=1.5;
I_mean=imfilter(I_noise.^(Q+1),fspecial('average',3))./imfilter(I_noise.^Q,fspecial('average',3));
imshow(I_mean,[]);title('Q=-1.5逆谐波滤波器滤波')

在这里插入图片描述
2. 对高斯噪声的各种均值滤波处理

%%均值滤波
%高斯噪声部分
clc;clear;
I=imread('1.jpg');
I=im2double(I);
I=rgb2gray(I);
%MappedData = mapminmax(I ,0, 255)
h=figure(1);
%显示原图
subplot(2,3,1);
imshow(I,[]);%[]自动产生适当的比例显示图像
title('原图');
%添加高斯噪声
subplot(2,3,2);
I_noise=double(imnoise(I,'gaussian',0.02));%salt & pepper注意中间的空格 无空格报错
imshow(I_noise,[]);title('高斯噪声');
%均值滤波
subplot(2,3,3);
I_3=fspecial('average',[3,3]);%3*3均值滤波    建立预定义的滤波算子
I_3=imfilter(I_noise,I_3);%(待处理矩阵,滤波器)
imshow(I_3,[]);title('3*3均值滤波');
subplot(2,3,4);
I_=exp(imfilter(log(I_noise),fspecial('average',3)));%算数均值滤波
imshow(I_,[]);title('3*3几何均值滤波');
subplot(2,3,5);
Q=-1.5;
I_mean=imfilter(I_noise.^(Q+1),fspecial('average',3))./imfilter(I_noise.^Q,fspecial('average',3));
imshow(I_mean,[]);title('Q=-1.5逆谐波滤波器滤波');
subplot(2,3,6);
Q=1.5;
I_mean=imfilter(I_noise.^(Q+1),fspecial('average',3))./imfilter(I_noise.^Q,fspecial('average',3));
imshow(I_mean,[]);title('Q=1.5逆谐波滤波器滤波');

在这里插入图片描述

均值滤波方法二:https://wenku.baidu.com/view/bef73431366baf1ffc4ffe4733687e21af45ff14.html

  1. 函数说明
  1. 结果分析

    4.1、对高斯噪声图像进行滤波:
    总体来说两个逆谐波均值滤波器的去噪小效果不如均值滤波器滤波的效果。算数均值滤波会使得图像边界变得模糊,而几何均值滤波不会导致此问题。
    原因是:算术均值滤波器的将多个像素的灰度值线性平均,用均值来代替各个像素值,会导致边界图像模糊。采用线性的方法,平均整个窗口范围内的像素值,它不能很好地保护图像细节,在图像去噪的同时也破坏了图像的细节部分,从而使图像变得模糊,不能很好地去除噪声点。

    4.2、对椒盐噪声图像进行滤波:
    算数均值滤波对椒盐噪声的去除效果较好;Q=-1.5的逆谐波滤波器留下了黑色的胡椒噪声,而Q=1.5的逆谐波滤波器留下了白色的盐噪声。均值滤波对高斯噪声表现较好,对椒盐噪声表现较差。
    原理:对于“胡椒”噪声应该采用Q值为正值的滤波器去噪,而用Q值为负值的滤波器对“盐”噪声进行去噪。

  • 66
    点赞
  • 469
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值