📄 zhongzhilvbo2.m
字号:
img = imread('eight.tif');
figure;
imshow(img);
title('原始图像');
J = imnoise(img, 'salt & pepper',0.02);
J2 = J;
figure
imshow(J);
title('加椒盐噪声后的图像');
% 3 * 3 窗口
NBlock = 3;
n = (NBlock - 1) / 2;
[M, N] = size(J2);
block = zeros(NBlock);
nL = NBlock ^ 2;
nMedIndex2 = int8(NBlock / 2);
for num1 = n + 1: M - n - 1
for num2 = n + 1 : N - n - 1
% 这一行还是先找了矩形域,然后根据矩形窗找出十字窗
block = J2(num1 - 1 : num1 + 1, num2 - 1 : num2 + 1);
% 要获得窗口中的十字形区域
% 下面这一行得到的是十字窗的横
block1 = block(nMedIndex2, :);
% 下面这一行得到的是十字窗的列
block2 = block(:, nMedIndex2);
% 将行和列合并到一个向量中,将它排序后再求中值
blocks = [block1, block2'];
% 求中值
blockss = sort(blocks(:));
% 十字窗口中的图像数据数量一定是偶数,所以要取两个的平均
mediValue = mean(blockss(NBlock : NBlock + 1));
% 求出的中值保存到图像中对应的位置上
J2(num1, num2) = mediValue;
end
end
figure;
imshow(uint8(J2))
title('十字窗口中值滤波后的图像');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -