2010-06-29 22 views
2

比方說,我有顏色'FOO',它以RGB格式存儲。我需要重新着色'FOO',以便與顏色列表中最接近的顏色相匹配。在飛行中進行此操作時,無法將每種顏色的RGB值視爲3D網格上的點(r = x,g = y,b = z),並計算點「FOO」與各點之間的距離列表中的顏色?顏色重映射 - 使用3D網格匹配目標調色板?

'FOO'的最接近點是替換顏色嗎?

+0

這是一個有趣的想法(作爲顏色「距離」的歐幾里德距離),但要判斷顏色是否爲幾何體的唯一方法就是嘗試它。我以前沒有聽說過這個,但我想聽聽它的結果。如果距離源點等距離兩點,你會做什麼?兩個等距離的顏色可能彼此非常不同。你如何選擇重映射到? – FrustratedWithFormsDesigner 2010-06-29 17:28:08

+0

我希望我可以嘗試一下,我在工作,我的計算設備是墊和紙,手機,計算器和收銀機。我將理論記下來,並嘗試在家中實施。 – 2010-06-29 17:32:21

+0

@Jeffrey Kern:我一直在那裏。我想你在手機上衝浪?那麼,我用這個理論看到的主要問題是等距點問題。如果我對色彩理論有更多的瞭解,我可能會有更多的話要說,但是我只會看......;) – FrustratedWithFormsDesigner 2010-06-29 17:34:08

回答

1

理論上,是的。實際上,如果你想做得很好,計算最接近的顏色並不重要。例如,人們的眼睛比亮度變化對亮度變化更敏感,尤其是朝向顏色範圍的終點(即,朝向極端紅色或藍色)。

至少如果您不介意計算中的一些額外工作,您將需要使用標準"delta E"計算之一(在您的情況下,您需要最小化delta E)。請注意,這些全部(全部我已經與之合作)在CIE L a * b *色彩空間中工作。在典型情況下,您將從RGB開始,首先您需要convert to Lab*

+0

如果我定位了一個自定義調色板,這個工作嗎?例如,原始圖像包含8種不同的顏色(紅色,綠色,黃色,桃子等),而目標調色板包含黑色,白色和4種藍色色調? – 2010-06-29 17:51:29

+0

@Jeffrey:是的,只有在這種情況下,任何事情都能很好地發揮作用 - 這一點可能會浪費時間。 OTOH,只有8種顏色的調色板,您可以預先計算8種可能輸入中每種輸出的輸出,並將每個像素轉換爲普通的查表。 – 2010-06-29 18:12:11

+0

@Jeffrey:同樣的,你也可以不要僅僅選擇你在評論中提到的* first * equal match,而是要跟蹤累積的錯誤,並選擇一個最小化整體錯誤的錯誤(參見Floyd-Steinberg抖動:http://en.wikipedia.org/wiki/Floyd%E2%80%93Steinberg_dithering)。 – 2010-06-29 18:15:14