2014-05-21 41 views
1

我與一個設計團隊合作,他們希望我在我們的iOS應用中實施照片過濾器。他們爲我提供了兩個看起來非常像這個圖像的文件,每個文件都有不同的顏色。嘗試使用兩種顏色查找表過濾圖像

我被告知,顯然我應該能夠在Photoshop中打開它們,比較在色彩上的差異,然後把這些差異在應用程序過濾的圖像。老實說,我不知道從哪裏開始。我已經在Photoshop中打開它們,但不知道要尋找什麼。我知道如何應用CIFilter的濾鏡,我只是不知道要應用哪種濾鏡。

任何人至少能夠指出我在正確的方向嗎?

回答

3

他們給你的是3D查找表或LUT。除了檢查LUT之外,您在此過程中根本不需要涉及Photoshop。

它看起來像你的LUT是25x25x40。每張廣場都是25x25,您的照片中有8x5 = 40廣場。 (實際上有8x4 = 32個正方形和在其上下的部分正方形,這很奇怪。)每個25x25正方形都有一個恆定的藍色值,紅色值隨x座標變化,而綠色隨y座標變化。

要使用LUT,需要輸入圖像中每個像素的(r,g,b)值,並在LUT中查找新值。因此,如果你的(R,G,B)值是(128,52,215)(假設每個通道8位,所以值在0-255之間),那麼你需要將這些範圍擴展到您的LUT範圍內。

爲了做到這一點,計算:

Red: 128/255 = x/25 
Green: 52/255 = x/25 
Blue: 215/255 = x/40 

所以,你得到:

Red = 13 
Green = 5 
Blue = 34 

現在你使用這些作爲LUT座標。你需要藍色爲34/40的廣場。這在你的設置中很棘手,因爲它不是一個長排。通常情況下,您只需將瓦片寬度乘以要獲取起始像素的瓦片數量,但我們無法在此處這樣做。我建議重新格式化LUT以這種方式工作。如果你這樣做,你可以乘以34 * 25 * sizeof(RGB)。一旦出現,您可以將該圖塊本身視爲圖像,並查找(x,y)=(13,5)。 (你可以使用5 * bytesPerRow + 13 * bytesPerPixel來做。)

你現在有了來自LUT的顏色。

有一個名爲CIColorCube的CoreImage過濾器,它允許你做類似的事情,但我自己並沒有使用它。

+0

非常感謝您的詳細回覆。我發佈的圖片實際上並不是我正在使用的圖片,只是我在網上找到的一個示例。我正在使用的圖像正好是8x8格,所以我應該能夠在最後一段中提到的內容。我認爲這會在第一次計算中改變分母? –

+0

是的,會的。在這種情況下,除以8而不是25或40。祝你好運! – user1118321

+0

此外,如果此問題解決了您的問題,請單擊左側的綠色複選框。 – user1118321