所以今天,我有一个功课需要计算一个图像中红色像素的平均值,使用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);
答案 0 :(得分:1)
您的计算不正确。
要计算平均值,您必须将所有值相加,然后将该总和除以值的数量。
您将0分配给红色,并在每次循环迭代中计数,以便您的平均值为#34;等于最后一个像素红色值除以1。 因此,您只需获取最后一个像素值,而不是平均值。
确保你输入你的总和和计数器进入循环。你只计算循环中的总和!
伪代码:
sum = 0
count = 0
for each pixel:
sum = sum + pixelvalue
count = count + 1
end
average = sum / count