【问题标题】:The mean value of red pixels in an image?图像中红色像素的平均值?
【发布时间】:2018-08-16 16:28:21
【问题描述】:

所以今天,我有一个作业需要计算一张图像中红色像素的平均值,以工程:CS101 - 自节奏计算机科学 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);

【问题讨论】:

    标签: javascript image-processing mean


    【解决方案1】:

    你的计算不正确。

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

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

    确保在进入循环之前初始化总和和计数器。你只计算循环内的总和!

    伪代码:

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

    【讨论】:

    • 感谢您的详细回答。下次我会小心的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-05
    • 2020-02-14
    • 2020-09-04
    • 2012-07-28
    • 2022-12-19
    • 2018-04-01
    相关资源
    最近更新 更多