使用BufferedImage从Java的RGB色彩空间获取灰度像素值
有人知道将返回的RGBint值<BufferedImage> getRGB(i,j)
转换为灰度值的简单方法吗?
我将使用此方法将它们分解,从而对RGB值进行平均。
int alpha = (pixel >> 24) & 0xff;int red = (pixel >> 16) & 0xff;
int green = (pixel >> 8) & 0xff;
int blue = (pixel) & 0xff;
然后平均红色,绿色,蓝色。
但是我觉得对于这样一个简单的操作,我一定会缺少一些东西…
在很好地回答了另一个问题之后,我应该弄清我想要的东西。
我想获取从getRGB(i,j)返回的RGB值,并将其转换为代表该像素“暗度”的0-255范围内的白色值。
这可以通过平均等来完成,但是我正在寻找OTS实施以节省几行。
回答:
这并不是听起来那么简单,因为对于如何将颜色映射到灰度没有100%正确的答案。
我要使用的方法是先将RGB转换为HSL,然后将S部分设置为0(并可选地转换回RGB),但这可能并不是您想要的。(它等于最高和最低rgb值的平均值,因此与所有3个平均值的平均值略有不同)
以上是 使用BufferedImage从Java的RGB色彩空间获取灰度像素值 的全部内容, 来源链接: utcz.com/qa/418229.html