7

いくつかのフォトショップ要素をCIFilterにマッピングしていますが、問題があるのはこのレベル調整だけです:

現在のバージョンの Photoshop のスクリーン ショット

上記の最初の例では 16、1.73、239、39/245、2 番目の例では 31、1.25、255 30/255 を利用できる CI フィルター (またはフィルターの組み合わせ) を選択します。これは一種の影/黒と白のレベル調整だと思います。

どんな助けでも感謝します。

4

1 に答える 1

10

http://http.developer.nvidia.com/GPUGems/gpugems_ch22.htmlのページの式を適応させることでCIColorMatrixCIGammaAdjustと別の の組み合わせを使用してこれを行うことができると思いますCIColorMatrix

inBlack入力レベルをそれぞれ と 、出力レベルを とinGammaと呼びましょう。Photoshop の色は 0 から 255 の間であり、CI の色は 0 から 1 の間であるため、Photoshop の値 ( ! を除く) を次の式に入れる前に 255 で割る必要があることに注意してください。inWhiteoutBlackoutWhiteinGamma

入力マッピングは です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

最後に、出力マッピングは pixel =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 を使用してこれを試したことはありませんが、計算はうまくいきます。

于 2012-12-14T03:38:47.713 に答える