像素值的平均值

时间:2016-05-05 00:53:50

标签: java image image-processing

我试图理解我的方法背后的理论,它计算图像的平均颜色值。

我正在使用java的Color类并访问像素并重新获取其RGB值。每个像素可以被认为是矢量。矢量具有红色值,绿色值和蓝色值。使用getRed()查找图像中红色像素的平均值时。该方法是否访问像素,计算向量中三种颜色的平均值,并将其作为该像素的平均值返回,然后移动到下一个像素并执行相同操作,直到它访问了所有像素,然后找到在所有平均值的像素值之和除以像素值的总数?

OR

getRed()只是对向量中的三个要素求和并返回总数并继续下一个像素并执行相同的操作。在除以总像素值之前。

所以,举个例子:

是吗:

<(>(R + G + B)/ 3)+((R + G + B)/ 3)+((R + G + B)/ 3)+((R + G + B)/ 3) +((R + G + B)/ 3))/ 5

OR

<(>(R + G + B))+((R + G + B))+((R + G + B))+((R + G + B))+((R + G + B) )))/ 5

提前致谢

1 个答案:

答案 0 :(得分:1)

如果您想要图像的平均颜色,则方法为:

浏览图像中的每个像素

  • 保持红色值(getRed())
  • 的运行总和
  • 保持运行总和绿色值
  • 保持蓝色值的运行总和
  • 保持像素数的总计

平均颜色 =(红色总数/总像素数),(绿色总数/总像素数),(蓝色总数/总像素数)

实施例

假设您有以下4像素图像:

[ (3, 1, 8) ] [ (4, 7, 0) ]

[ (1, 5, 9) ] [ (5, 1, 6) ]

平均红色值 =(3 + 4 + 1 + 5)/ 4 = 3.25

平均蓝色值 =(1 + 7 + 5 + 1)/ 4 = 3.5

平均绿色值 =(8 + 0 + 9 + 6)/ 4 = 5.75

平均颜色 =(3.25,3.5,5.75)//只需决定如何对数字进行舍入