中值滤波处理
中值滤波法是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值,即将窗口内的像素值从小到大排列,取中值作为窗口中点像素的值。
matlab代码
f=rgb2gray(imread('medium2017.jpg'));
k = 5 ;%5*5的窗口
[ m, n ] = size(f);
f1 = double(f);
g = f1;
for i = 1: m-k+1
for j = 1:n-k+1
mb = f1( i:(i+k-1), j:(j+k-1) );
mb = mb(:);
mm = median(mb);
g( i+(k-1)/2, j+(k-1)/2 ) = mm;
end
end
g = uint8(g);
figure(1);
subplot(1,2,1);imshow(f);title('原图');
subplot(1,2,2);imshow(g);title('5*5窗口中值滤波');
效果:
原图
处理后