Matlab椒盐噪声、均值滤波、中值滤波及窗口尺寸影响

一、目标:

  1. 对lena图像加入椒盐噪声,强度为30%,分别采用均值滤波,中值滤波进行处理。并讨论不同尺寸的模板对结果影响

 

二、函数分析:

1、imnoise()

    定义:给图像增加噪声

    形式:J = imnoise(I,'gaussian')

              J = imnoise(I,'localvar',var_local)

              J = imnoise(I,'salt & pepper',d)

    描述:J = imnoise(I,'gaussian'),即为给图像添加零均值高斯白噪声

              J = imnoise(I,'localvar',var_local),加上局部方差var_local的零均值高斯白噪声。

              J = imnoise(I,'salt & pepper',d),用椒盐噪声污染图像f,其中d是噪声密度(即包括噪声值的图像区域的百分比)。因此,大约有d*numel(f)个像素受到影响。默认的噪声密度为0.05。

 

2、fifter2()

    定义:二位数字滤波

    形式:Y = filter2(H,X)

    描述:根据矩阵H中的系数对数据X的矩阵应用有限脉冲响应滤波器。

 

3、fspecial()

    定义:创建预定义的二维过滤器

    形式:h = fspecial(type)

               h = fspecial('average',hsize)

    描述:对于本次实验使用h = fspecial('average',hsize),即为返回大小为hsize的平均筛选器h。

 

4、medfilt2()

    定义:二维中值滤波

    形式:J = medfilt2(I)

              J = medfilt2(I,[m n])

     描述:执行中值滤波,其中每个输出像素包含输入图像中相应像素周围m×n邻域中的中值。I为输入图像,J为输出图像,[m n]为窗口大小,缺省为[3 3]。

 

三、代码展示:

% 1、对lena图像加入椒盐噪声,强度为30%,
%    分别采用均值滤波,中值滤波进行处理。
%    并讨论不同尺寸的模板对结果影响。
%
% @author: jackma
% @time:   2020-10-5 13:46
% @URL:    www.jackrma.com
% @Copyright:博客所有权归本人和CSDN所有,如有转载请在显著位置给出博文
%            链接和作者姓名,否则本人将付诸法律。
% @edit:   

% 1. Lena图像加入椒盐噪声
imgrgb = imread('lena512color.BMP'); %读取lena小姐姐真彩色图像
imggray = rgb2gray(imgrgb); %将rgb图像转换成灰度图像
figure('Name', 'Lena图像加入椒盐噪声'); %标题
subplot(121);
imshow(imggray); %显示灰度图像
title('原始灰度图像');

I = imnoise(imggray, 'salt & pepper', 0.3); %添加椒盐噪声,强度30%
subplot(122);
imshow(I); %显示加入椒盐噪声的图像
title('加入强度30%椒盐噪声的图像');

% 均值滤波
figure('Name', '均值滤波处理分析'); %标题
K1 = filter2(fspecial('average', 3), I) / 255; %应用3*3领域窗口法
subplot(221);
imshow(K1);
title('3*3窗的均值滤波图像');

K2 = filter2(fspecial('average', 7), I) / 255; %应用7*7领域窗口法
subplot(222);
imshow(K2);
title('7*7窗的均值滤波图像');

K3 = filter2(fspecial('average', 9), I) / 255; %应用9*9领域窗口法
subplot(223);
imshow(K3);
title('9*9窗的均值滤波图像');

K4 = filter2(fspecial('average', 11), I) / 255; %应用11*11领域窗口法
subplot(224);
imshow(K4);
title('11*11窗的均值滤波图像');

% 中值滤波
figure('Name', '中值滤波处理分析');
S1 = medfilt2(I,[3 3]);
subplot(221);
imshow(S1);
title('3*3窗的中值滤波图像');

S2 = medfilt2(I,[7 7]);
subplot(222);
imshow(S2);
title('7*7窗的中值滤波图像');

S3 = medfilt2(I,[9 9]);
subplot(223);
imshow(S3);
title('9*9窗的中值滤波图像');

S4 = medfilt2(I,[11 11]);
subplot(224);
imshow(S4);
title('11*11窗的中值滤波图像');

四、结果展示及分析:

Matlab椒盐噪声、均值滤波、中值滤波及窗口尺寸影响_第1张图片

 

                          图1 原始灰度图像和加入强度为30%的椒盐噪声的图像

Matlab椒盐噪声、均值滤波、中值滤波及窗口尺寸影响_第2张图片

 

                           图2 各种窗口尺寸均值滤波处理后的图像

Matlab椒盐噪声、均值滤波、中值滤波及窗口尺寸影响_第3张图片

 

                             图3 各种窗口尺寸中值滤波处理后的图像

        显然由结果图像可得,lena图像在加入了30%椒盐噪声情况下,用中值滤波比均值滤波更有效果。窗口越小,细节保留的更多,但是一部分椒盐噪声还没有滤除。当窗口尺寸大时,虽然把绝大多数的噪声都滤除了,但是图像细节丢失严重。

你可能感兴趣的:(数字图像处理,matlab,图像处理)