matlab练习程序(最大均值滤波)

clear;
clc;
width=3;
xwidth=(width-1)/2;
imgn=imread('1.bmp');
imshow(imgn,[]);
imgn=double(imgn);
[m n]=size(imgn);
imgn1=imgn;
z=zeros(4,width);
tem=1;
for i=1+xwidth:1:m-xwidth
for j=1+xwidth:1:n-xwidth

for k=-xwidth:1:xwidth
z(1,tem)=imgn(i,j+k);
z(2,tem)=imgn(i+k,j);
z(3,tem)=imgn(i-k,j+k);
z(4,tem)=imgn(i+k,j+k);
tem=tem+1;
end
z1=mean(z(1,:));
z2=mean(z(2,:));
z3=mean(z(3,:));
z4=mean(z(4,:));
tem=1;

% z1=mean([imgn(i,j-1),imgn(i,j),imgn(i,j+1)]);
% z2=mean([imgn(i-1,j),imgn(i,j),imgn(i+1,j)]);
% z3=mean([imgn(i+1,j-1),imgn(i,j),imgn(i-1,j+1)]);
% z4=mean([imgn(i-1,j-1),imgn(i,j),imgn(i+1,j+1)]);

imgn1(i,j)=max([z1,z2,z3,z4]);
end
end
figure,imshow(imgn1,[]);

转载于:https://www.cnblogs.com/tiandsp/archive/2012/01/28/2330776.html