将RGB值转换为灰度值的简单算法(转)
將RGB值轉換為灰度值的簡單算法??
原文:http://blog.163.com/zhaowei0425@126/blog/static/475860302011311103956748/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空間有關,而與作為目標空間的灰度空間無關。
????二、灰階的計算
????不同的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)
????三、灰度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中好多看起來很讓人困惑的事情根本就不會發生;否則,麻煩的事情很可能就會接踵而至,以至于讓您一頭霧水,不辯東西。
轉載于:https://www.cnblogs.com/GarfieldTom/archive/2012/12/21/2828506.html
總結
以上是生活随笔為你收集整理的将RGB值转换为灰度值的简单算法(转)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WIN7系统中连接点(Junction
- 下一篇: 人脸识别测试维度定义(欢迎大家拍砖并补充