获得灰度像素的亮度

时间:2014-11-25 21:23:45

标签: .net colors grayscale

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

由于

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

由于亮度(亮度)是主观的,因此有多种方法可将RBG转换为亮度值。不同之处在于你给每种颜色多少重量。

这是相对亮度(Y)的one method

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

这是another

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

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