Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 为什么';计算RGB的平均值会产生像素的亮度吗?_Image_Image Processing_Colors_Rgb - Fatal编程技术网

Image 为什么';计算RGB的平均值会产生像素的亮度吗?

Image 为什么';计算RGB的平均值会产生像素的亮度吗?,image,image-processing,colors,rgb,Image,Image Processing,Colors,Rgb,我正在为我打算做的一个小项目做一些研究,包括确定像素的亮度。我想到的第一个想法是只计算亮度=(R+G+B)/3,但后来我偶然发现了一个答案,这个答案有非常不同和具体的方程式。为什么平均RGB值不起作用?我们的眼睛对绿光更敏感,因此绿色通道中的255比红色或蓝色通道中的255更能感知亮度 国际照明委员会(CIE)于1931年创建了两个标准颜色空间(),这两个颜色空间源自20世纪20年代进行的感知实验。这些实验和色彩空间是当今所有色度学的基础* 在CIE 1931 RGB颜色空间中,亮度方程Y定义为

我正在为我打算做的一个小项目做一些研究,包括确定像素的亮度。我想到的第一个想法是只计算亮度=(R+G+B)/3,但后来我偶然发现了一个答案,这个答案有非常不同和具体的方程式。为什么平均RGB值不起作用?

我们的眼睛对绿光更敏感,因此绿色通道中的255比红色或蓝色通道中的255更能感知亮度

国际照明委员会(CIE)于1931年创建了两个标准颜色空间(),这两个颜色空间源自20世纪20年代进行的感知实验。这些实验和色彩空间是当今所有色度学的基础*

在CIE 1931 RGB颜色空间中,亮度方程Y定义为:

Y = ( 0.17697 R + 0.81240 G + 0.01063 B ) / 0.17697
然而,RGB中Y的定义取决于R、G和B所用的原色(例如,LCD监视器发出的三种纯色)以及它们相加产生的白色。例如,对于标准D65白点和来自和的原色,从RGB到Y的转换如下:

Y = 0.2126 R + 0.7152 G + 0.0722 B
这个方程式中绿色的权重大约是蓝色的十倍。这与已知的颜色感知相匹配,并解释了为什么在计算机屏幕上,黑色背景上的绿色文本可以阅读,而相同背景上的蓝色文本更难阅读

如果你想了解更多关于不同颜色空间的知识,以及如何在它们之间转换,你应该阅读



>关于颜色感知的研究已经很多,并且已经出版了诸如CIELAB和CIELUV等新的颜色空间,但是CIE XYZ仍然是它们的基础。

所以,如果我正在编写一个程序,并且我把RGB值的平均值作为亮度的指示器,那是正确的吗?我所理解的是,这些值决定了我们眼睛的亮度,而不是电脑的亮度。亮度的整个概念存在于人类,而不是电脑中。这是一种感性的品质。如果你想测量计算机是如何感知事物的,你需要自己测量它,并找出计算机是如何感知的。但是,如果你正在做任何事情,将RGB转换成由人类确定的亮度,你会希望使用你找到的公式。我可以告诉你,专业的照片和视频编辑应用程序使用的公式与链接问题中的公式类似。我的想法是,我的应用程序将确定像素的亮度,并用字符替换它。我会预先设定亮度范围,以不同的方式映射到角色,这样就不会出现人类对图片或亮度的感知。这一切都在计算机内部,它只是在完成所有字符替换每个像素后输出一个.txt文件,具体取决于像素的“亮度”。@Eyad请注意,计算字符的亮度需要伽马校正-50%白色50%黑色的棋盘看起来像(186186186)而不是(128128)。如果绿色(0255,0)比蓝色(0,0255)浅不是很明显,那么比较黄色(255255,0)和品红(255,0255)可能更好。我认为你是在处理人类的感知。您试图将人类感知的亮度转换为具有相同亮度的角色。您希望文本文件在相应区域的亮度与图像大致相同。你绝对应该使用这里提到的公式之一。@CrisLuengo哦,是的,这是正确的,谢谢