顏色差異

顏色差異（Color difference），亦稱顏色距離，是色彩學上的一個關注點。它量化了一個概念。在未量化之前，人們只能用形容詞來大概描述這個概念，這使得對顏色要求嚴格的工作者們很不方便。顏色差異可以通過色彩空間內的歐氏距離簡單計算得出，也可以使用國際照明委員會較為複雜、均勻的人類知覺公式計算。

## 歐氏距離

很多日常使用的「顏色差異」，是直接通過在一個「設備無關」的色彩空間裡，進行歐氏距離的計算得到的。給定一個RGB（紅綠藍）的色彩空間，最簡單的差異計算方式就是在這個三維空間裡求兩個點間的距離：

$$\mathrm{\Delta_{RGB}} = \sqrt{ (R_2-R_1)^2+(G_2-G_1)^2 + (B_2-B_1)^2 }$$

如果還要簡單一點，經常可以去掉平方根：

$$\mathrm{\Delta_{RGB}}^2 = { (R_2-R_1)^2+(G_2-G_1)^2 + (B_2-B_1)^2 }$$

這樣求得的距離可以用來比較兩個顏色中哪一個更接近某個給定的顏色。如果把這些平方距離加在一起，會得到一組距離間的方差。

有不少人嘗試將RGB三值加上權重，希望可以讓得到的結果更加符合人類感官。一種做法是使用2、4、3：

$\sqrt{ 2 \times \Delta R^2 + 4 \times \Delta G^2 + 3 \times \Delta B^2 }$,

對於0~255的數值，有一種近似是：

$$\bar r = {{C_{1,R} + C_{2,R} } \over 2}$$

$$\Delta R = C_{1,R} - C_{2,R}$$

$$\Delta G = C_{1,G} - C_{2,G}$$

$$\Delta B = C_{1,B} - C_{2,B}$$

$$\Delta C = \sqrt {\left( {2 + {{\bar r} \over {256}}} \right) \times \Delta R^2 + 4 \times \Delta G^2 + \left( {2 + {{255 - \bar r} \over {256}}} \right) \times \Delta B^2 }$$

## Delta E

國際照明委員會（CIE）稱他們的度量標準為「1=ΔE*ab」（也作「1=ΔE*」，另有「1=dE*」、「dE」、「Delta E」）。其中，Δ 是一個常用來表示「差異」的希臘字母，E表示Empfindung，也就是德文中的「感覺」。富有影響的赫爾曼·馮·亥姆霍茲和埃瓦爾德·赫林曾使用過它。

兩個顏色之間的最小可覺差(JND)值，也就是有多大的1=ΔE*差距才能剛好被察覺，目前還沒有定論。儘管並沒有實踐經驗支持，'1.0'這個值經常被提到並用作JND。可是，1994年，Mahy et al研究並評估出了一個2.31=ΔE的JND值。然而，支撐該理論的CIELAB色彩空間中，知覺的非均勻特性（換言之，有些顏色在改變時，人眼對其十分敏感，而有的就分辨得不太清楚）導致這種理論不太站得住腳。這使得CIE用了接下來的幾年時間修繕他們的定義，最終產生了更完善的（據CIE）1994年和2000年的公式。這些非均勻特性很重要，因為人眼對某些特定的顏色更敏感。一個好用的度量方法，應該把這些因素都考慮在內，才能使「剛剛好能被察覺到的差異」這種提法有意義。不然的話，可能出現這樣的情況：對於兩組分別含有一對不同的顏色、同樣適用某個ΔE值的顏色組，其中一組顏色的差異能被人眼覺察出來，另一組卻不能。

L、a和b三個值（見下方公式）一般是介於(-1,1)之間的雙精度數值。Lab圖像在保存時，L被存儲為無符號（即「不分正負」）8位元整數，a、b則被存儲為有符號的8位元整數，以保持文件大小。

### CIE76

1976年的這個色彩差異公式是首個用較為均勻的Lab空間計算色彩差異值的公式。Lab比RGB等空間在感官上均勻一點，所以得到的結果會更好。不過後來人們發現Lab色彩空間，尤其是在飽和度較高的區域裡，並沒有設計時預想的那麼「感官上均勻」，所以幾次更新了1=ΔE公式。CIE76公式會高估較為飽和的顏色之間的差異。

應用$({L^*_1},{a^*_1},{b^*_1})$和$({L^*_2},{a^*_2},{b^*_2})$兩個L*a*b*色彩空間的顏色：

$$\Delta E_{ab}^* = \sqrt{ (L^*_2-L^*_1)^2+(a^*_2-a^*_1)^2 + (b^*_2-b^*_1)^2 }$$

本公式對應的最小可覺差：$\Delta E_{ab}^* \approx 2.3$

### CIE94

在汽車噴漆行業里，人們測量了大量有關人眼容差情況的數據。隨著這些「應用特定」的數據的發布，人們將1976年的定義進行了進一步的發展，以更好地應對感知非均勻特性。該公式仍然採用的是Lab色彩空間。

1994版ΔE是在L*C*h*色彩空間下定義的。它的亮度、色品（或稱「濃度」）、色調是從L*a*b*坐標系裡計算來的。對於一個基準色$(L^*_1,a^*_1,b^*_1)$和另一個顏色$(L^*_2,a^*_2,b^*_2)$，它們的差異是：

$$\Delta E_{94}^* = \sqrt{ \left(\frac{\Delta L^*}{k_L S_L}\right)^2 + \left(\frac{\Delta C^*_{ab}}{k_C S_C}\right)^2 + \left(\frac{\Delta H^*_{ab}}{k_H S_H}\right)^2 }$$

其中：

$$\Delta L^* = L^*_1 - L^*_2$$

$$C^*_1 = \sqrt{ {a^*_1}^2 + {b^*_1}^2 }$$

$$C^*_2 = \sqrt{ {a^*_2}^2 + {b^*_2}^2 }$$

$$\Delta C^*_{ab} = C^*_1 - C^*_2$$

$$\Delta H^*_{ab} = \sqrt{ {\Delta E^*_{ab}}^2 - {\Delta L^*}^2 - {\Delta C^*_{ab}}^2 } = \sqrt{ {\Delta a^*}^2 + {\Delta b^*}^2 - {\Delta C^*_{ab}}^2 }$$

$$\Delta a^* = a^*_1 - a^*_2$$

$$\Delta b^* = b^*_1 - b^*_2$$

$$S_L = 1$$

$$S_C = 1+K_1 C^*_1$$

$$S_H = 1+K_2 C^*_1$$

另外，其中的kC和kH一般都取1，係數（權值）kL、K1和K2則依應用場合不同而取不同的值。如：

圖形藝術｜紋理、紡織品

$k_L$｜1｜2

$K_1$｜0.045｜0.048

$K_2$｜0.015｜0.014

從幾何學上講，$\Delta H^*_{ab}$這個數量即是這兩種顏色的相同色度圈的弦長的算術平均值。

### CIEDE2000

鑑於1994年的公式並沒有充分解決感知非均勻特性的問題，CIE再次修繕了定義，並加入了5個修訂係數：

- 色調旋轉項(RT)，用來應對常出問題的藍色區域（色相角度275°左右）。
- 中性色調補償（對應L*C*h差異）
- 亮度補償（SL）
- 色度補償（SC）
- 色調補償（SH）

$$\Delta E_{00}^* = \sqrt{ \left(\frac{\Delta L'}{k_L S_L}\right)^2 + \left(\frac{\Delta C'}{k_C S_C}\right)^2 + \left(\frac{\Delta H'}{k_H S_H}\right)^2 + R_T \frac{\Delta C'}{k_C S_C}\frac{\Delta H'}{k_H S_H} }$$

註：下面的公式請使用角度而非弧度，尤其在RT上需要注意。

kL、kC、kH一般取1。

$$\Delta L^\prime = L^*_2 - L^*_1$$

$$\bar{L} = \frac{L^*_1 + L^*_2}{2} \quad \bar{C} = \frac{C^*_1 + C^*_2}{2}$$

$$<pre> a_1^\prime = a_1^* + \frac{a_1^*}{2} \left( 1 - \sqrt{\frac{\bar{C}^7}{\bar{C}^7 + 25^7}} \right) \quad a_2^\prime = a_2^* + \frac{a_2^*}{2} \left( 1 - \sqrt{\frac{\bar{C}^7}{\bar{C}^7 + 25^7}} \right) </pre>$$

$$<pre> \bar{C}^\prime = \frac{C_1^\prime + C_2^\prime}{2} \mbox{ and } \Delta{C'}=C'_2-C'_1 \quad \mbox{where } C_1^\prime = \sqrt{a_1^{'^2} + b_1^{*^2}} \quad C_2^\prime = \sqrt{a_2^{'^2} + b_2^{*^2}} \quad </pre>$$

$$<pre> h_1^\prime=\text{atan2} (b_1^*, a_1^\prime) \mod 360^\circ, \quad h_2^\prime=\text{atan2} (b_2^*, a_2^\prime) \mod 360^\circ </pre>$$

Note: The inverse tangent (tan−1) can be computed using a common library routine `atan2(b, a&prime;)` which usually has a range from −π to π radians; color specifications are given in 0 to 360 degrees, so some adjustment is needed. The inverse tangent is indeterminate if both a′ and b are zero (which also means that the corresponding C′ is zero); in that case, set the hue angle to zero. See .

$$<pre> \Delta h' = \begin{cases} h_2^\prime - h_1^\prime & \left| h_1^\prime - h_2^\prime \right| \leq 180^\circ \\ h_2^\prime - h_1^\prime + 360^\circ & \left| h_1^\prime - h_2^\prime \right| > 180^\circ, h_2^\prime \leq h_1^\prime \\ h_2^\prime - h_1^\prime - 360^\circ & \left| h_1^\prime - h_2^\prime \right| > 180^\circ, h_2^\prime > h_1^\prime \end{cases} </pre>$$

Note: When either C′1 or C′2 is zero, then Δh′ is irrelevant and may be set to zero. See .

$$<pre> \Delta H^\prime = 2 \sqrt{C_1^\prime C_2^\prime} \sin (\Delta h^\prime/2), \quad \bar{H}^\prime=\begin{cases} (h_1^\prime + h_2^\prime + 360^\circ)/2 & \left| h_1^\prime - h_2^\prime \right| > 180^\circ \\ (h_1^\prime + h_2^\prime)/2 & \left| h_1^\prime - h_2^\prime \right| \leq 180^\circ \end{cases} </pre>$$

Note: When either C′1 or C′2 is zero, then H′ is h′1+h′2 (no divide by 2; essentially, if one angle is indeterminate, then use the other angle as the average; relies on indeterminate angle being set to zero). See stating most implementations on the internet at the time had "an error in the computation of average hue".

$$<pre> T = 1 - 0.17 \cos ( \bar{H}^\prime - 30^\circ ) + 0.24 \cos (2\bar{H}^\prime) + 0.32 \cos (3\bar{H}^\prime + 6^\circ ) - 0.20 \cos (4\bar{H}^\prime - 63^\circ) </pre>$$

$$<pre> S_L = 1 + \frac{0.015 \left( \bar{L} - 50 \right)^2}{\sqrt{20 + {\left(\bar{L} - 50 \right)}^2} } \quad S_C = 1+0.045 \bar{C}^\prime \quad S_H = 1+0.015 \bar{C}^\prime T </pre>$$

$$R_T = -2 \sqrt{\frac{\bar{C}'^7}{\bar{C}'^7+25^7}} \sin \left[ 60^\circ \cdot \exp \left( -\left[ \frac{\bar{H}'-275^\circ}{25^\circ} \right]^2 \right) \right]$$

## 應用

### 差異分類

在討論人類感知時，一般使用ΔE計算色彩差異。如前所述，一般認為在ΔE系統中，1.0是剛好注意得到的量。取決於產品的受眾，有時候會改用2.5作為可以接受的限制。例如一般情況下，人們會說「葉子和草地是綠的」，但仔細看就能發現葉子和草地都有從黃綠到藍綠等不同的差異。

這類差異在很多產品的品質控制中非常重要：在生產和運輸中經常會有一些來自內部或外部的隨機擾動，造成實際上顯示的顏色和之前校準出的結果有一些差異。在最理想的情況下，要做到「一般的觀察者」不能察覺這類變化。膠印過程中通常允許最高2到4個單位的ΔE色彩差異；而家用印表機造成的色差可能更大。

## 外部連結

- Michel Leonard 的 CIE ΔE 2000 實現，涵蓋 20 多種程式語言。
- Bruce Lindbloom's color difference calculator . Uses all metrics defined herein.
- The CIEDE2000 Color-Difference Formula , by Gaurav Sharma. Implementations in MATLAB and Excel.
- Color Similarity Tool , by Dragan Bajcic, Implementations in PHP and Javascript.
- python-colormath . Implementation in Python.
- Precise Color Communication Konica Minolta Sensing.