当前位置: 首页 > 面试题库 >

使用BufferedImage从Java的RGB色彩空间获取灰度像素值

左仰岳
2023-03-14
问题内容

有人知道将返回的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个平均值的平均值略有不同)



 类似资料:
  • 问题内容: 我正在尝试导出单色“灰度”图像中特定像素的强度值。我有一些伪代码,但是到目前为止,我还无法实现真正​​有效的功能。 问题答案: 也许这会帮助您: http://docs.oracle.com/javase/7/docs/api/java/awt/image/BufferedImage.html http://docs.oracle.com/javase/7/docs/api/javax

  • 问题内容: 谁能解释如何从BufferedImage获取rgb值数组? 我在BufferedImage中有一个灰度图像,需要提取一个描述图像的0到255个值的数组。 我知道BufferedImage是正确的,因为我可以将其保存为PNG。但是,如果使用,我会得到一堆巨大的负数。 我搜索了一段时间,并看到了一些有关转移某些值的参考资料([post]),但并不太了解他们在说什么。 基本上,我想从Buff

  • 谁能解释一下如何从BufferedImage中获得一个rgb值数组? 我在BufferedImage中有一个灰度图像,需要提取一个描述图像的0到255个值的数组。 我知道BufferedImage是正确的,因为我可以将其保存为PNG。但是,如果我使用我得到一堆巨大的负数。 我搜索了一段时间,看到了一些关于转移一些价值观的参考(帖子),但并不真正理解他们在说什么。 基本上,我想从BufferedIm

  • 主要内容:将彩色图像转换为灰度在前面的章节中,我们讨论了如何读取不同类型的输入图像(二进制,灰度,BGR等)。 在本章中,我们将学习如何将一种图像转换为另一种图像。 包中名为的类提供了将图像从一种颜色转换为另一种颜色的方法。 将彩色图像转换为灰度 使用方法将彩色图像转换为灰度。 以下是此方法的语法。 该方法接受以下参数 - src - 表示来源的矩阵。 dst - 表示目的地的矩阵。 code - 表示转换类型的整数代码,例如

  • 实际上我想对每个像素做一些计算,为此我需要显式地访问每个像素。 如有任何帮助或建议,我们将不胜感激。