定义:给图像增加噪声
形式: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。
定义:二位数字滤波
形式:Y = filter2(H,X)
描述:根据矩阵H中的系数对数据X的矩阵应用有限脉冲响应滤波器。
定义:创建预定义的二维过滤器
形式:h = fspecial(type)
h = fspecial('average',hsize)等
描述:对于本次实验使用h = fspecial('average',hsize),即为返回大小为hsize的平均筛选器h。
定义:二维中值滤波
形式: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窗的中值滤波图像');
图1 原始灰度图像和加入强度为30%的椒盐噪声的图像
图2 各种窗口尺寸均值滤波处理后的图像
图3 各种窗口尺寸中值滤波处理后的图像