MATLAB在图像中的所有像素上查找平均RGB值

时间:2014-03-18 16:16:36

标签: image matlab colors rgb pixels

代码如下。我一次循环输入图像1个像素并确定其RGB值。之后,我试图找到整体图像的平均RGB值。出于某种原因,我的代码的平均部分不起作用。

im = imread(filename);
[width, height, depth] = size(im);
count = 0;
r=0;
g=0;
b=0;
for x = 1 : width
    for y = 1: height
        r = r + im(x,y,1);
        g = g + im(x,y,2);
        b = b + im(x,y,3);     
        count = count + 1;
    end
end

%find averages of each RGB value.
r2 = r/count;
g2 = g/count;
b2 = b/count;

2 个答案:

答案 0 :(得分:2)

为什么不进行矢量化和使用mean

mean( reshape( im, [], 3 ), 1 )

答案 1 :(得分:1)

以下代码也可以使用;

pep = imread('peppers.png');
mean(mean(pep))

这将返回一个1x1x3向量,它将分别是R,G和B的平均值。