我們已經在API中讀取3D Lut(Nuke格式)文件,並將轉換應用於圖像中的高度優化的類。因此,如果我使用複雜公式將RGB值轉換爲Lab(RGB-> XYZ-> Lab)值,我認爲如果我爲RGB生成一個查找表(或者XYZ到LAB)變換。這可能嗎?爲sRGB生成3DLUT(.3dl文件)以CIELAB色彩空間轉換
我明白3D Lut是如何處理從RGB到RGB的轉換的,但我對RGB與Lab感到困惑,因爲L,a和b有不同的範圍。任何提示?
編輯:
能否請你解釋一下我甩將如何工作? 繼承人一個解釋:link
例如,下面是我的3D LUT的RGB-> RGB轉換的理解: 樣本核彈3DL甩文件:
0 64 128 192 256 320 384 448 512 576 640 704 768 832 896 960 1023
R, G, B
0, 0, 0
0, 0, 64
0, 0, 128
0, 0, 192
0, 0, 256
.
.
.
0, 64, 0
0, 64, 64
0, 64, 128
.
.
這裏,而不是產生一個1024 * 1024 * 1024表的源10位RGB值,每個R,G和B範圍量化爲17個值,生成4913行表。 第一行給出了可能的量化值(我認爲這裏只是長度和最大值的問題)。現在假設,如果源RGB值是(20,20,190),則輸出將是行#4(0,0,192)(使用一些內插技術)。那是對的嗎? 這是一個10位的源代碼,你可以通過改變範圍從0到255來產生一個8位的相似的?
同樣,你將如何繼續進行sRGB-> Lab轉換?
*源色彩空間*中的離散值是可能的(例如,每個通道8位是合適的,> =每個通道16位導致一個令人難以置信的大表)。 *目標色彩空間*可以像您想要的那樣精確(它只決定*您在表格單元格中寫入多少*,而不是*表格的大小) – leemes
可選:GPGPU(可能使用CUDA,OpenCL或GLSL) – leemes
您不必量化*輸出*。你甚至可以爲你的實驗室儲存三個浮標;它只會使表格線性增大。然而,如果你比較8位的RGB到16位的RGB,你的表格有1600萬對2.8e14的條目(我甚至不知道這個數字的名字......)所以,如果你保持*輸入信號*量化少量的位(即每個通道RGB 8位24位),生成和使用表格是合適的(請參閱我的答案)。 – leemes