【问题标题】:MATLAB finding average RGB value across all pixels in imageMATLAB 查找图像中所有像素的平均 RGB 值
【发布时间】:2014-04-24 11:16:03
【问题描述】:

代码如下。我一次遍历输入图像 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;

【问题讨论】:

  • rgb的数据类型是什么?您是否可以使用uint8 类型变量来累积强度?

标签: image matlab colors rgb pixels


【解决方案1】:

为什么不向量化和使用mean

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

【讨论】:

    【解决方案2】:

    下面的代码也可以;

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

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

    【讨论】:

      猜你喜欢
      • 2016-06-21
      • 2014-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多