Что случилось с CITemperaAndTint, имеющим векторные входы? - PullRequest
8 голосов
/ 03 ноября 2011

ОК, поэтому фильтр Core Image Filter и Tint имеют два входа: нейтральный и targetNeutral. Однако моя самая большая проблема заключается в том, что они оба являются двухкомпонентными векторами, то есть каждый имеет два числовых входа. Я ожидаю, что первое будет от, скажем, 2500 до 10000. Для чего будет вектор?

1 Ответ

25 голосов
/ 09 февраля 2012

Основная цель выполнения регулировки температуры и оттенка состоит в том, чтобы откорректировать баланс белого снятого изображения: учесть внешнее освещение сцены и отрегулировать цвета так, чтобы изображение выглядело больше, как будто оно было снято в «белом» свете(примерно 6500K).

Температура относится к теплу или прохладе изображения и обычно качественно характеризуется оранжевым или голубоватым.

Оттенок относится к отклонению зеленого или пурпурного цветов при той же температуре.Обратите внимание, что оттенок (определяется как таковой) в основном не зависит от цветовой температуры.(Взгляните на диаграмму CIE с локусом Планка и нарисованными на нем изотермами, чтобы развить свою интуицию по этому поводу. Вот один из них: http://en.wikipedia.org/wiki/File:Planckian-locus.png).

Итак, когда вы заинтересованы в выполнении регулировки баланса белого (следует личтобы изображение выглядело более реалистичным или для художественных целей) необходимо указать четыре различных параметра: температуру исходного изображения, оттенок белой точки, как она появляется на исходном изображении, желаемую цветовую температуру на выходеизображение и то, как смещенные оттенки должны отображаться на нейтральном тоне на выходном изображении .Комбинация температуры и оттенка изображения является функцией окружающего света в сцене и отклика отображаемого материала, а также температуры и температуры.оттенок необходим для значимой характеристики баланса белого снятого изображения.

Вот почему CITemperatureAndTint принимает два вектора: ему нужны только что описанные две пары (температура, оттенок).

Теперь, если вы хотите создать пользовательский интерфейс для управленияВ итоге, вам не нужно предоставлять пользователю контроль над всеми четырьмя из этих значений.Вместо этого удерживайте второй вектор (TargetNeutral) на постоянном уровне (6500, 0) и разрешите пользователю настроить другой вектор (Neutral).При таком расположении пользователь будет выбирать воспринимаемую цветовую температуру и изменение оттенка исходного изображения.(Вместо этого вы можете оставить векторную константу Neutral и разрешить пользователю настраивать вектор Target Neutral; это может быть более уместно в тех случаях, когда пользователь хочет художественно настроить баланс белого, но корреляцию между выбранными значениямии полученное изображение не так очевидно).

...