您的位置:首页 > 其它

数字图像处理 平滑滤波

2011-11-23 15:56 573 查看
实验题目:

分别采用均值、中值、最大值、最小值滤波器对下边两幅图像进行平滑处理,输出处理结果并进行比较。



实验程序

clear;clc;
I1=imread('images\butterfly.bmp');
I2=imread('images\x.tif');
I1=rgb2gray(I1);
I2=rgb2gray(I2);
n=5; c=5;
mask=ones(n,n);
[r1,c1]=size(I1);[r2,c2]=size(I2);
subplot(2,5,1);imshow(I1);title('原图');
subplot(2,5,c+1);imshow(I2);
I1=double(I1);I2=double(I2);
I1_mean=I1;I2_mean=I2;
I1_max=I1;I2_max=I2;
I1_min=I1;I2_min=I2;
I1_median=I1;I2_median=I2;
mid=floor(n/2);
%=======处理图片1================
for u=1:r1-n+1
for v=1:c1-n+1
A=I1(u:u+n-1,v:v+n-1);A=A.*mask;
I1_mean(u+mid,v+mid)=mean(mean(A));
I1_max(u+mid,v+mid)=max(max(A));
I1_min(u+mid,v+mid)=min(min(A));
I1_median(u+mid,v+mid)=median(median(A));
end
end
%======处理图片2==================
for u=1:r2-n+1
for v=1:c2-n+1
B=I2(u:u+n-1,v:v+n-1);B=B.*mask;
I2_mean(u+mid,v+mid)=mean(mean(B));
I2_max(u+mid,v+mid)=max(max(B));
I2_min(u+mid,v+mid)=min(min(B));
I2_median(u+mid,v+mid)=median(median(B));
end
end
subplot(2,5,2);imshow(I1_mean(mid+1:r1-mid,mid+1:c1-mid),[]);title('均值');
subplot(2,5,c+2);imshow(I2_mean(mid+1:r2-mid,mid+1:c2-mid),[]);
subplot(2,5,3);imshow(I1_max(mid+1:r1-mid,mid+1:c1-mid),[]);title('最大值');
subplot(2,5,c+3);imshow(I2_max(mid+1:r2-mid,mid+1:c2-mid),[]);
subplot(2,5,4);imshow(I1_min(mid+1:r1-mid,mid+1:c1-mid),[]);title('最小值');
subplot(2,5,c+4);imshow(I2_min(mid+1:r2-mid,mid+1:c2-mid),[]);
subplot(2,5,5);imshow(I1_median(mid+1:r1-mid,mid+1:c1-mid),[]);title('中值');
subplot(2,5,c+5);imshow(I2_median(mid+1:r2-mid,mid+1:c2-mid),[]);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: