%{ 中值滤波medfilt2,用法是B = medfilt2(A, [m n]),输入图像A应是二维矩阵,程序中输入图像h是由imread得到的I加上噪声得到的,而imread读到的图像I通常是3维RGB图,是三维矩阵,因此才出现问题,显示A应该为二维的。
解决方法: 先用rgb2gray(I)将h先将I图像转换为灰度矩阵图像,再用medfilt2。 %}
m = imread('im赫本.jpg');
subplot(1,4,1);
imshow(m);
subplot(1,4,2);
j = imnoise(m,'salt & pepper',0.03);%添加均值为0,方差为0.03的椒盐噪声,&左右一定要加空格
imshow(j);
subplot(1,4,3);
k = rgb2gray(j);
b = medfilt2(k,[3,3]);
imshow(b);
title('3*3中值滤波');
subplot(1,4,4);
c = medfilt2(k,[5,5]);
imshow(c);
title('5*5中值滤波');