clc;
clear all;
img=im2double(imread('D:\Gray Files\3-33.tif'));
KernelSize=7;
%扩展区域的行列数
len=floor(KernelSize/2);
%对原始图像进行扩展,此处采用了镜像扩展,目的是解决边缘计算的问题
img_pad=padarray(img,[len,len],'symmetric');
[M,N]=size(img_pad);
g=zeros(size(img));
for i=1+len:M-len
for j=1+len:N-len
%从扩展图像中,取出局部图像
Block=img_pad(i-len:i+len,j-len:j+len);
%将多维矩阵转换为一维数组
Block=Block(:);
%取这组数的中值,赋值给输出图像
g(i-len,j-len)=median(Block);
end
end
imshow(g);
title('中值滤波');