使用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

回到顶部