注册 登录
编程论坛 Matlab

求助,看看这图像处理的程序哪出错了?

yonghang911 发布于 2008-06-02 19:47, 1025 次点击
本人写的图像白平衡处理的程序。由于MATLAB刚学,对于数组、矩阵的数值处理搞不太懂,希望大家指出错误,最好能改正。谢谢!
function whitebalanced(pic)
a=imread(pic);
b=double(a);
[m,n]=size(b(:,:,1));
yadd=0;
for i=1:m
    for j=1:n
        y(i,j)=0.299*b(i,j,1)+0.587*b(i,j,2)+0.114*b(i,j,3);
        yadd=yadd+y(i,j);
    end
end
yave=yadd/m*n;
ymax=0;
for i=1:m
    for j=1:n
        if ymax<y(i,j)
            ymax=y(i,j);
        end
    end
end
Rsum=0;
Gsum=0;
Bsum=0;
num=0;
for i=1:m
    for j=1:n
        if y(i,j)<=0.95*ymax
                Rsum=Rsum+b(i,j,1);
                Gsum=Gsum+b(i,j,2);
                Bsum=Bsum+b(i,j,3);
                num=num+1;
            else
               num=num+0;
            end
    end
end
for i=1:m
    for j=1:n
        b(i,j,1)=yave*num*b(i,j,1)/Rave;
        b(i,j,2)=yave*num*b(i,j,2)/Gave;
        b(i,j,3)=yave*num*b(i,j,3)/Bave;
    end
end
c=uint8(b);
image(c);

[[it] 本帖最后由 yonghang911 于 2008-6-2 19:48 编辑 [/it]]
0 回复
1