clearclcclff = imread('FigP0501.tif');%%%%%%% 5.1 %%%%%%%%% 算术均值滤波aver3 = fspecial('average',[3,3]);aver5 = fspecial('average',[5,5]);aver9 = fspecial('average',[9,9]);% 在使用imfilter前把图像数据类型转换为double类fd = double(f);faver3 = imfilter(fd,aver3,'replicate');faver5 = imfilter(fd,aver5,'replicate');faver9 = imfilter(fd,aver9,'replicate');% 恢复为原来的数据类型faver3 = uint8(faver3);faver5 = uint8(faver5);faver9 = uint8(faver9);% 显示实验结果figure(1)subplot(1,3,1)imshow(faver3,[]);title('3*3算术均值滤波');subplot(1,3,2)imshow(faver5,[]);title('5*5算术均值滤波');subplot(1,3,3)imshow(faver9,[]);title('9*9算术均值滤波');%%%%%%% 5.6 %%%%%%%%% 中值滤波fmedian3 = medfilt2(fd,[3,3],'symmetric');fmedian5 = medfilt2(fd,[5,5],'symmetric');fmedian9 = medfilt2(fd,[9,9],'symmetric');% 恢复为原来的数据类型fmedian3 = uint8(fmedian3);fmedian5 = uint8(fmedian5);fmedian9 = uint8(fmedian9);% 显示实验结果figure(2)subplot(1,3,1)imshow(fmedian3,[]);title('3*3中值滤波');subplot(1,3,2)imshow(fmedian5,[]);title('5*5中值滤波');subplot(1,3,3)imshow(fmedian9,[]);title('9*9中值滤波');%%%%%%% 5.7 %%%%%%%%% 最大值滤波fmax3 = imdilate(fd,ones(3));fmax5 = imdilate(fd,ones(5));fmax9 = imdilate(fd,ones(9));% 恢复为原来的数据类型fmax3 = uint8(fmax3);fmax5 = uint8(fmax5);fmax9 = uint8(fmax9);% 显示实验结果figure(3)subplot(1,3,1)imshow(fmax3,[]);title('3*3最大值滤波');subplot(1,3,2)imshow(fmax5,[]);title('5*5最大值滤波');subplot(1,3,3)imshow(fmax9,[]);title('9*9最大值滤波');%%%%%%% 5.8 %%%%%%%%% 最小值滤波fmin3 = imerode(fd,ones(3));fmin5 = imerode(fd,ones(5));fmin9 = imerode(fd,ones(9));% 恢复为原来的数据类型fmin3 = uint8(fmin3);fmin5 = uint8(fmin5);fmin9 = uint8(fmin9);% 显示实验结果figure(4)subplot(1,3,1)imshow(fmin3,[]);title('3*3最小值滤波');subplot(1,3,2)imshow(fmin5,[]);title('5*5最小值滤波');subplot(1,3,3)imshow(fmin9,[]);title('9*9最小值滤波');