可見光只佔電磁波譜的一小部分
一個物體反射的光如果在所有可見光波長範圍內是平衡的,那麼對觀察者來說顯示為白色。然而,一個物體反射有限的可見光譜, 則物體呈現某種顏色
顏色有三種屬性
為什麼需要 CIE 色彩空間?
定義三原色,再通過顏色疊加以得到其他顏色,如果混合色和待測色達成一致,那麼三原色的分量被稱為待測色的三色刺激值
CIE 規定了紅綠藍三原色光為標準波長為 700 nm(紅色)、546.1 nm(綠色)和 435.8 nm(藍色),再通過顏色匹配實驗得到顏色匹配函數
如果 C = 1,也就是滿足 \(C=\frac{R}{R+G+B}(R)+\frac{G}{R+G+B}(G)+\frac{B}{R+G+B}(B)(3)\)
SPD(Spectral Power Distribution)是指光源的光譜功率分佈。SPD 是一個曲線圖,顯示了特定光源產生的每個波長的光的功率(強度)
格拉斯曼定律告訴我們人類對色彩的感知(大約)是線性的
我們稱 \(r=\frac{R}{R+G+B}(R)\)、\(g=\frac{G}{R+G+B}(R)\) 和 \(b=\frac{B}{R+G+B}(R)\) 為色度座標(chromaticity coordinates),我們只要知道任意兩個座標的值,就能算出第三個座標的值
連線各個波長的色度座標形成光譜軌跡,將光譜軌跡內的混合色繪製出來以得到色度圖
通過對 CIE RGB 做線性變換的到 CIE XYZ 色彩空間,定義了三個新的顏色匹配函數 \(\bar{x}(\lambda)\)、\(\bar{y}(\lambda)\)、\(\bar{z}(\lambda)\)
它有如下性質
CIE XYZ 的色度圖(事實上,色度圖是三維曲線,我們看到的是它在 xy 平面上的投影):
CIE XYZ 並不是感知統一(perceptually uniform)的色彩空間,色度圖上任何兩種顏色之間的歐幾里德距離不能用作感知色差的統一度量,從 520nm 到 560nm 看起來都是綠色的,但從 460 納米到 500 納米,包含了更廣泛的顏色集
CIE LAB 是一種感知統一的色彩空間
常用於視訊編碼的色彩空間,基於人類對亮度更加敏感這個事實設計,Y 表示亮度,UV 表示色度,每個畫素都有一個 Y 取樣,但一組畫素會共用 U,V 取樣
YUV 並不是絕對色彩空間(absolute color space)
儘管 CIE XYZ 是標準色彩空間(canonical color space),但影象和裝置並不會直接使用它,CIE XYZ 衍生出了許多其他色彩空間,比如 sRGB、NTSC 等
1996 年,微軟和 HP 定義了標準的 RGB 原語,且白點被定義為 D65 光源,這個色彩空間被稱為 standard RGB(sRGB)
從 XYZ 做線性變換可以得到線性 sRGB 空間
從線性 sRGB 空間到 sRGB 空間還需要做伽馬編碼
人眼對亮度的感知不是線性的,對較暗的光線更敏感,但對較強的光線不是那麼敏感,如果不對影象做伽馬編碼,就會為人類無法區分的高亮度分配太多的位元,而為人類敏感的低亮度分配太少的位元
因此我們會對影象資訊做如下的非線性變換,稱為伽馬編碼
其中 \({\gamma}\) 是伽馬值,sRGB 的伽馬值約等於 2.2
伽馬編碼會用更大的區間來表示低亮度,用更小的區間表示高亮度
CRT 顯示器有一個電子特性是光強和電壓並不是線性的,而且表現出的關係也符合伽馬編碼,只不過 \({\gamma}\) 的值是負數,利用這個特性 sRGB 影象可以不做解碼直接在 CRT 顯示器上輸出
真實場景中,物體的 SPD 反映了物體的反射特性和場景光,我們的視覺系統會去適應場景光,比如同一個蘋果,在白天和傍晚的 SPD 是不同的,但我們看來卻都是紅色,這種現象叫色感一致性(color constancy)
相機的感測器並沒有這種功能,因此影象處理階段需要做白平衡
光源色溫的定義為與此光源發出相似的光的黑體輻射體所具有的開爾文溫度
我們常常用光源的色溫來描述光源
下圖在 CIE xy 色度圖中標出了不同溫度下黑體光源的色度
CIE 定義了一組標準光源,它們可以作為真實光源的參考
光源的 SPD 同樣可以轉換為三刺激值,並被正則化為色度座標,這個座標就白點
色彩適應(chromatic adaptation)的想法就是讓不同場景裡的白點看起來一樣
von Kries 模型是一種色彩適應方法
人類三種視錐細胞的反應記作 L、M、S,對於給定的刺激 \(i_r(\lambda)\),我們可以這樣來計算它們
其中,\(\bar{l}(\lambda)\)、\(\bar{m}(\lambda)\) 和 \(\bar{s}(\lambda)\) 是三種視錐細胞的光譜靈敏度函數(spectral sensitivity function)
\(i_r(\lambda)\) 來自於
其中,\(i(\lambda)\) 表示光源,\(r(\lambda)\) 表示給定平面的光譜反射率(spectral reflectivity)
von Kries 模型用來預測觀測條件變化後,視錐細胞的反映,觀測條件的變化主要指光源的變化,假設 \(i(\lambda)\) 被另一個光源 \(i_a(\lambda)\) 替換掉,此時錐細胞的反應我們記作 \(L_a\)、\(M_a\) 和 \(S_a\)
比例係數通常使用 \(k_L=L_{max}a/L_{max}\)、 \(k_M=M_{max}a/M_{max}\)、 \(k_S=S_{max}a/S_{max}\),帶 max 下標的符號表示給定光源下 LMS 視錐細胞對白點刺激的最大反應
雖然 von Kries 模型是在 LMS 色彩空間中定義的,但可以做 3x3 的變換以放到 XYZ 色彩空間中使用
本文來自部落格園,作者:路過的摸魚俠,轉載請註明原文連結:https://www.cnblogs.com/ljx-null/p/17032693.html