这个简单的matlab代码有什么问题?

时间:2014-06-05 13:47:37

标签: matlab image-processing computer-forensics

我有一个用彩色笔制作的签名图像'a'。背景是纯白色的。我需要计算前景像素的r g b分量之和,以及构成前景的总像素。这是我的代码 -

r=a(:,:,1);
g=a(:,:,2);
b=a(:,:,3);
rsum=0;
gsum=0;
bsum=0;
count=0;
for i=1:h
    for j=1:w
        if r(i,j)~=255 || g(i,j)~=255 || b(i,j)~=255
            rsum=rsum + r(i,j);   
            gsum=gsum + g(i,j);
            bsum=bsum + b(i,j);
            count=count+1; 
        end
    end
end

它正确计算count的值,但rsum,gsum,bsum都设置为255,这显然是错误的。矩阵r,g,b是正确的(显示除255之外的像素)。为什么不起作用?

1 个答案:

答案 0 :(得分:2)

似乎typersumgsum的{​​{1}}是bsum,并且它在255处饱和。 尝试明确地将总和转换为其他类型。

uint8

PS,
最好not to use i and j as variable names in Matlab