我有一个用彩色笔制作的签名图像'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之外的像素)。为什么不起作用?
答案 0 :(得分:2)
似乎type
,rsum
和gsum
的{{1}}是bsum
,并且它在255处饱和。
尝试明确地将总和转换为其他类型。
uint8