急急急!用matlab实现对80X80图像 每四个像素(2x2)求平均值

2024-12-29 17:18:06
推荐回答(4个)
回答1:

均值滤波嘛~
但是你确定是每四个像素求平均值吗?
这样的话中心点放在哪里?
我给你个每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);

回答2:

直接用imresize就可以了。若要自己做,也可以参考imresize函数。

回答3:

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

回答4:

不懂