我想将像素值转换为其平均灰度值。 R,G,B分量是1字节整数(0-255)。有没有办法计算像素的平均值(R + G + B)/ 3而不将组件转换为另一种类型?
我还想避免(R / 3 + G / 3 + B / 3),因为边缘情况如(2,2,2)将变为0而不是2。
答案 0 :(得分:1)
div
是整数除法(某些语言为//
),mod
为模运算(某些语言为%
)
Rd = R div 3
Rm = R mod 3
Gd = G div 3
Gm = G mod 3
Bd = B div 3
Bm = B mod 3
Average = Rd + Gd + Bd + (Rm + Gm + Bm) div 3