2012-02-09 5 views
0

Я хотел бы создать коррекцию уровня с помощью Pixel Bender. Я сделал коррекцию для каждого канала (r, g, b), он работает. Но я не знаю, как сделать коррекцию для midtone для каждого из них.Как создать изменения гаммы (midtone) с помощью Pixel Bender?

Есть ли какая-нибудь формула или пример?

К сожалению, Google не получил решение

+0

Не могли бы вы объяснить, что вы хотите сделать с помощью графика? – Kodiak

+0

Я хотел бы сделать инструмент, как уровни фотошопа. Я планирую менять цветовые каналы и гамму. Я мог бы внести изменения в канал, но у меня были проблемы с гамма (midtones). Я нашел формулу r = pow (r, gamma), но она не работает для меня. – Ilya

+0

как вы написали свою формулу в pixelbender? – Kodiak

ответ

0

Я предполагаю, что вы ищете фильтр, который сжимает цвет и вычисляет на канал гамма. Я выбрал быстрый фильтр. Обратите внимание, что если вы хотите «правильную» гамма масштаба серого, вам может потребоваться сделать

(rgb)->(luma+color)->(gamma correction)->(rgb) преобразование.

<languageVersion : 1.0;> 

kernel untitled 
< namespace : "Your Namespace"; 
    vendor : "Your Vendor"; 
    version : 1; 
> 
{ 
    input image4 src; 
    output pixel4 dst; 

    parameter float low 
    < 
    minValue : 0.0; 
    maxValue : 1.0; 
    defaultValue : 0.0; 
    >; 

    parameter float high 
    < 
    minValue : 0.0; 
    maxValue : 1.0; 
    defaultValue : 1.0; 
    >; 

    parameter float gamma 
    < 
    minValue : 0.0; 
    maxValue : 5.0; 
    defaultValue : 1.0; 
    >; 

    void 
    evaluatePixel() 
    { 

     dst = sampleNearest(src,outCoord()); 
     dst.r = pow(dst.r, gamma); 
     dst.g = pow(dst.g, gamma); 
     dst.b = pow(dst.b, gamma); 

     dst.rgb -= low; 
     dst.rgb /= (high - low); 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^