【问题标题】:Getting the brightness of a Grayscale pixel获取灰度像素的亮度
【发布时间】:2014-11-26 11:16:06
【问题描述】:

基本上我试图找到位图图像中所有像素的亮度。我使用的图像是 24 位图图像,我不允许使用函数 GetBrightness()。 我正在获取像素的 RGB 值,我想知道 RGB 值是否也是像素的亮度,或者任何人都可以推荐一种获取灰度像素的像素亮度的方法吗?

谢谢

【问题讨论】:

  • 你能告诉我们你是如何“得到”这些东西的吗?为什么你不能使用GetBrightness
  • 我不能使用 getBrightness,因为我已经编写了自己的类来读取位图图像。我只是在读取每个像素的 RGB 值并想知道它是否也包含亮度?如果这有任何意义,对不起,我不能再清楚了

标签: .net colors grayscale


【解决方案1】:

由于亮度(亮度)是主观的,有多种方法可以将 RBG 转换为亮度值。不同之处在于您对每种颜色赋予了多少权重。

这里是 one method 相对亮度 (Y):

Y = (0.2126 * R) + (0.7152 * G) + (0.0722 * B)

这里是another

Y = (0.299 * R) + (0.587 * G) + (0.114 * B)

第一种方法比某些人更可取,因为(对于大多数人来说)“绿光对人类感知强度的贡献最大,而蓝光最小”。色盲和其他差异会减轻影响。请注意,第二种方法对绿色值的权重较小,对红色值的权重较大,蓝色值的权重稍高。

【讨论】:

    【解决方案2】:

    转灰度有多种方法:http://www.johndcook.com/blog/2009/08/24/algorithms-convert-color-grayscale/

    我已经成功使用了0.21 R + 0.72 G + 0.07 B 方法。这将为您提供一个数字(0-255 之间),即灰度值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-17
      • 1970-01-01
      • 2015-06-08
      • 2015-08-31
      • 1970-01-01
      • 2013-09-16
      • 2023-03-07
      • 1970-01-01
      相关资源
      最近更新 更多