急求有关MATLAB分区域图像处理的问题

目标是求对一个图像进行分区域处理,8×8之类的,求出每个区域的平均亮度,然后输出一个以平均亮度作为白光亮度的分区域图像
急救啊~~
或者也可以把平均亮度乘个系数0.4直接加到原图像,反正要的是方法

对不起。。。我没没说清楚,要的是背光补偿,就是产生出来的图像要和原图像相加的,目前用的是B=blkproc(A,[m n],fun)这个函数
I = imread('123.jpg');
I2=rgb2gray(I)
f = inline('mean2(x)*ones(size(x))');
I3 = blkproc(I2,[8 8],f);
IMSHOW(mat2gray(I3))
这样可以得到一个灰阶的图,但是怎样才能和原图相加呢?

F=uint8(I3)
K=imadd(I,J);的话

??? Function imlincomb expected its array input arguments (A1, A2, ...) to be the same size.

Error in ==> imlincomb at 85
Z = imlincombc(images, scalars, output_class);

Error in ==> imadd at 81
Z = imlincomb(1.0, X, 1.0, Y, output_class);
但是图像大小是一样的啊

假设图像大小256*256,用两重for循环(1-32),每次循环求一次平均值,在赋值就可以了
clear all,clc
i=rgb2gray(imread('mona.jpg'));%256*256
j=i;
for m=1:32
for n=1:32
pjld=sum(sum(i(8*(m-1)+1:8*m,8*(n-1)+1:8*n)))/64;
j(8*(m-1)+1:8*m,8*(n-1)+1:8*n)=j(8*(m-1)+1:8*m,8*(n-1)+1:8*n)+pjld*0.4;
end
end
imshow(j);
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-05-18
把RBG图像变换到YUV空间,然后自己写个循环,在Y(亮度)这一层把每一个像素,都加上你的补偿值,然后转换回RGB空间.