图像中红色像素的平均值?

时间:2018-03-08 10:39:43

标签: javascript image-processing mean

所以今天,我有一个功课需要计算一个图像中红色像素的平均值,使用Engineering:CS101 - SELF PACED Computer Science 101的图像作为例子。我试着编写代码来做到这一点,但从结果来看,也许我做错了。如果有人能为我检查并帮助我纠正它,我将非常感激。

image = new SimpleImage("flowers.jpg");

for (pixel: image) {
    red = 0;
    green = 0;
    blue = 0;
    count = 0;
    red =  red + pixel.getRed();
    blue = blue + pixel.getBlue();
    green = green + pixel.getGreen();
    count = count + 1;
    avgred = red / count;
    avggreen= green / count;
    avgblue = blue / count;
}

print(image);
print("Average Red:", avgred);

1 个答案:

答案 0 :(得分:1)

您的计算不正确。

要计算平均值,您必须将所有值相加,然后将该总和除以值的数量。

您将0分配给红色,并在每次循环迭代中计数,以便您的平均值为#34;等于最后一个像素红色值除以1。 因此,您只需获取最后一个像素值,而不是平均值。

确保你输入你的总和和计数器进入循环。你只计算循环中的总和!

伪代码:

sum = 0
count = 0
for each pixel:
  sum = sum + pixelvalue
  count = count + 1
end
average = sum / count