我映射數的Photoshop元素CIFilter,我在使用麻煩的只有一個是此水平的調整:如何將Photoshop的水平調整映射到核心圖像過濾器?
哪個CI篩選(或過濾器組合)將讓我在第一個例子中使用上面的16,1.73,239,& 39/245,或者在第二個例子中使用31,1.25,25 30/255。我相信這是一種陰影/黑白平衡調整。
任何幫助表示讚賞。
我映射數的Photoshop元素CIFilter,我在使用麻煩的只有一個是此水平的調整:如何將Photoshop的水平調整映射到核心圖像過濾器?
哪個CI篩選(或過濾器組合)將讓我在第一個例子中使用上面的16,1.73,239,& 39/245,或者在第二個例子中使用31,1.25,25 30/255。我相信這是一種陰影/黑白平衡調整。
任何幫助表示讚賞。
通過改編此頁的公式:http://http.developer.nvidia.com/GPUGems/gpugems_ch22.html,我相信你可以使用CIColorMatrix
,CIGammaAdjust
和另一個CIColorMatrix
的組合來完成此操作。
我們稱之爲輸入電平inBlack
,分別inGamma
和inWhite
和輸出電平outBlack
和outWhite
。需要注意的是Photoshop顏色是0和255之間,而CI顏色是0和1之間,所以你需要通過255將它們放入下列公式之前劃分的Photoshop值(除inGamma
!)。
輸入映射爲pixel = (inPixel-inBlack)/(inWhite-inBlack)
,這意味着你的第一矩陣將
red = [1/(inWhite-inBlack) 0 0 0]
green = [0 1/(inWhite-inBlack) 0 0]
blue = [0 0 1/(inWhite-inBlack) 0]
alpha = [0 0 0 1]
bias = [-inBlack/(inWhite-inBlack), -inBlack/(inWhite-inBlack),-inBlack/(inWhite-inBlack), 0]
然後你申請使用CIGammaAdjust
和inGamma
數字伽瑪校正(我不得不做我的計算時使用的逆1/inGamma
,嘗試太!)。
最後輸出映射像素= gammaCorrectedPixel * (outWhite - outBlack) + outBlack
,給你最後的矩陣
red = [(outWhite - outBlack) 0 0 0]
green = [0 (outWhite - outBlack) 0 0]
blue = [0 0 (outWhite - outBlack) 0]
alpha = [0 0 0 1]
bias = [outBlack outBlack outBlack 0]
我沒有使用CoreImage真正試過,但計算工作出很好!
你能解釋一下這個部分?像素= gammaCorrectedPixel *(outWhite - outBlack)+ outBlack – Eric
從鏈路的公式是'outPixel的=(POW(((inPixel * 255.0) - inBlack)/(inWhite - inBlack),inGamma)*(outWhite - outBlack)+ outBlack )/ 255.0'所以這是'pow'的外側的部分(式解構成'pow'之前施加一個矩陣乘法時,'pow'本身用作伽馬校正,然後適用於所有的矩陣之後發生的' pow')。 – jakber
so,inBlack = 31,inGamma = 1.25,inWhite = 255?那麼,我們必須將這些值除以255? –