将RGB值转换为灰度值的简单算法

发布时间: 2019-10-09 13:34:58 来源: 互联网 栏目: JavaScript 点击:

这篇文章重要简介了将RGB值转换为灰度值的简单算法,文中经过过程示例代码简介的异常详细,对大年夜家的进修或许任务具有必定的参考进修价值,须要的同伙们下面随着小编来一路进修进修吧

RGB是若何转换为灰度的?这是让人困惑已久的一道困难。  

1、RGB复合通道转灰度:转换后的色阶值只与RGB空间有关,而与作为目标地的灰度空间有关。也就是说,只需以后的RGB空间不变,不论将灰度空间设置为哪一种,转换后的色阶值都是一样的。

2、RGB中的单通道转灰度:转换后的色阶值不只于RGB空间有关,并且还与作为目标地的灰度空间有关。然则,其灰度值K只于RGB色阶有关,而与RGB空间及灰度空间有关。其值与RGB色阶X的关系为:K=1-X/255

3、在RGB形式中,修改色彩设置中的RGB任务空间,将影响复合通道的外不雅和灰度K值,和单通道的灰度值。然则,不会影响到单通道的外不雅。

4、在RGB形式中,假设修改色彩设置中的灰度空间,将影响到单色通道的外不雅和单色通道、复合通道的灰度K值,然则,不会影响到复合通道的外不雅。

以上看法供大年夜家评论辩论!

一、RGB向灰度转换的道理

RGB向灰度转换时,是以LAB形式为中介的(这和PS中关于LAB形式的一向解释是完全吻合的)。其根本的流程是:起首将RGB转换为LAB,然后在LAB中去色,使A、B均为零,并依此生成一个RGB等值的灰阶,最后再根据该灰阶向灰度空间转换。

因而可知,转换为灰度的等值RGB只与本来的RGB空间有关,而与作为目标空间的灰度空间有关。

2、灰阶的计算

不合的RGB空间,灰阶的计算公式有所不合,罕见的几种RGB空间的计算灰阶的公式以下:

1、简化 sRGB IEC61966-2.1 [gamma=2.20]

Gray = (R^2.2 * 0.2126  + G^2.2  * 0.7152  + B^2.2  * 0.0722)^(1/2.2)

2、 Adobe RGB (1998) [gamma=2.20]

Gray = (R^2.2 * 0.2973  + G^2.2  * 0.6274  + B^2.2  * 0.0753)^(1/2.2)

3、Apple RGB [gamma=1.80]

Gray = (R^1.8 * 0.2446  + G^1.8  * 0.6720  + B^1.8  * 0.0833)^(1/1.8)

4、ColorMatch RGB [gamma=1.8]

Gray = (R^1.8 * 0.2750  + G^1.8  * 0.6581  + B^1.8  * 0.0670)^(1/1.8)

5、简化 KODAK DC Series Digital Camera [gamma=2.2]

Gray = (R^2.2 * 0.2229  + G^2.2  * 0.7175  + B^2.2  * 0.0595)^(1/2.2)

3、灰度K的计算

由于RGB空间与灰度空间都有其相互自力的灰度系数(即GAMMA,设RGB空间的GAMMA为GAMMA1,灰度空间的GAMMA为GAMMA2),是以,就有了两种意义上的灰度K,一种是在RGB空间中相关于GAMMA1的灰度K1,另外一种是转换到灰度空间后,相关于灰度空间GAMMA2的灰度K2(K2实际上就是经过GAMMA转换后的灰度)。灰度K与灰阶L的关系为:

K1=1-L/255

K2=K1^(GAMMA1/GAMMA2)=1-(L/255)^(GAMMA1/GAMMA2)

两点解释:

1、只需RGB空间与灰度空间的GAMMA值相等,即GAMMA1=GAMMA2,那么,K1=K2=1-L/255。

2、若何才能得知某一色彩空间的GAMMA值?先在“色彩设置”的任务空间当选定照应的任务空间,然后,再选择“自定义(RGB空间或灰度系数)”,在弹出的对话框中,个中的“灰度系数”就是刚才设定的任务空间的照应GAMMA值。

四、RGB中不合色彩通道转灰度的方法不合

1、复合通道转灰度

复合通道转灰度实际上就是全部图象转灰度。这类情况下,采取的是转换设备文件的方法:即在转换的过程当中,保持色彩外不雅不变,而改变色彩数据。这里的色彩数据就是灰度K,色彩外不雅就是图象的外不雅显示和与之照应的RGB值。

是以,复合通道转换为灰度后,其灰度值其实不是K1,而是K2,这就是改变色彩数据的成果。关于一幅RGB等值的图象,在转换为灰度后,虽然灰度值产生了改变,但图象的外不雅显示及照应的RGB值却没有改变,这正是在转换过程当中保存了色彩外不雅的成果。

2、单色通道转灰度

不只可以将复合通道(即整幅图象)转换为灰度形式,也能够将某个单色通道转换为灰度形式。其实,当复制单色通道时,就是单色通道由RGB转为灰度的过程。与复合通道的转换不合的是,单色通道的转换是采取指定设备文件的方法:即在转换的过程当中保持色彩的数据不变,色彩外不雅照应改变。

是以,当把单色通道复制为ALPHA通道时,通道的灰度值K1得以保存,但通道的色彩外不雅(包含外不雅显示及照应的灰阶值)却产生了变更。

3、单色通道的特别显示

单色通道本身是一幅灰度图,按事理来讲,用灰度K来标识最为恰当不过,但是,单色通道又属于RGB形式的色彩通道,从这个方面来讲,用RGB值来表示单色通道最恰当不过了。面对如许一种两难的情况,PS采取了一种折衷的显示筹划,即色彩数据采取RGB空间中的RGB值,而外不雅则采取了转换为灰度后的照应外不雅。

4、辨认信息调板中RGB色彩通道的灰度显示值

在信息调板中显示的各色彩通道的灰度值应当卖力辨认:

关于复合通道而言,显示的灰度值就是转换为灰度形式后的灰度K2;

关于单色通道而言,本来应当显示不经过伽玛转换的灰度值K1。然则,但面对一幅RGB等值的RGB图象时,却出现了复合通道与单色通道不等的情况,这类情况很轻易给大年夜家形成困惑。为了不至于让大年夜家产生困惑,因而,PS应用了障眼术,偷偷地将本来的K1换成了经过伽玛转换后的K2。因而可知,信息调板中单色通道的灰度显示值是PS掩耳盗铃的一个把戏,大年夜家切切不要被其蒙骗。

总之,关于大年夜多半人而言,把RGB任务空间的GAMMA与灰度任务空间的GAMMA设置为等值是须要的。假设您如许做了,那么PS中很多多少看起来很让人困惑的任务根本就不会产生;不然,费事的任务很能够就会接二连三,以致于让您一头雾水,不辩器械。

以上就是本文的全部内容,欲望对大年夜家的进修有所赞助,也欲望大年夜家多多支撑我们。

本文标题: 将RGB值转换为灰度值的简单算法
本文地址: http://yourctp.com/wangluo/javascript/278105.html

假设认为本文对您有所赞助请赞助本站

付出宝扫一扫赞助微信扫一扫赞助

  • 付出宝扫一扫赞助
  • 微信扫一扫赞助
  • 付出宝先领红包再赞助
    声明:凡注明"本站原创"的一切文字图片等材料,版权均属编程客栈一切,迎接转载,但务请注明出处。
    基于Vue 撸一个指令完成拖拽功能vue3修改link标签默许icon有效成绩详解
    Top