均值滤波嘛~
但是你确定是每四个像素求平均值吗?
这样的话中心点放在哪里?
我给你个每9个点求均值的,你试试。
如果你非要四个点,把中值滤波器改为[1 1;1 1]
倒是也行,但是仍感不妥。
%Date: 2011年9月26日20:25:53
%Function: 3*3均值滤波
%Written by 风之风信子
clc;
clear;
clear all;
I=imread('peppers.png');
%这里改成你的路径,
%切记图像不能放在汉字文件夹。
%路径例子:d:\matlab\moon_light_shadow.jpg
J=rgb2gray(I);
%彩色变黑白
h=(1/9)*[1 1 1;1 1 1;1 1 1];
%滤波器,如果非要2*2用下边这行的滤波器。
% h=(1/4)*[1 1;1 1];
I2=imfilter(J,h);
%滤波(就是求平均的过程)
imshow(I2);
直接用imresize就可以了。若要自己做,也可以参考imresize函数。
img0=[];
for m=1:80/2
for n=1:80/2
image1(m,n)=sum(sum(img0(2*m-1:2*m,2*n-1:2*n))/4;
end
end
不懂