2011-12-25 3 views
3

Я не понимаю входные параметры CIFilter с именем CITemperatureAndTint. В документации говорится, что у него есть два входных параметра, которые являются как 2D CIVector.Входные параметры CITemperatureAndTint (CIFilter)

Я играл с этим фильтром много - через фактический код через Core Image Fun House (пример проекта от Apple - «FunHouse») и через iPhoto.

В моей интуиции говорится, что этот фильтр должен иметь два скалярных входных параметра: один для температуры и один для оттенка. Если посмотреть на пользовательском интерфейсе Iphoto вы видите это:

Скриншот iPhotos и Tint Температура интерфейса:

Screenshot of iPhotos Temerature and Tint UI http://dl.dropbox.com/u/29925418/Screen%20Shot%202011-12-25%20at%2012.28.16%20PM.png

Как и следовало ожидать: один ползунок температуры и один для оттенка. Как яблоко «связывает» значение каждого ползунка с 2D-вектором? akaru задал этот вопрос уже, но не получил ответа: What's up with CITemperatureAndTint having vector inputs?

+0

Не могли бы вы загрузить изображение с помощью Ctrl + G? – kennytm

+0

У меня недостаточно репутации, чтобы сделать это. –

ответ

7

Я открыл службу технической поддержки Apple и задал им тот же вопрос. Вот ответ от инженера компании Apple:

CITemperatureAndTint имеет три входных параметра: изображение, нейтральный и TargetNeutral. Нейтральные и TargetNeutral имеют тип 2D CIVector и в обоих из них, обратите внимание, что первый размер относится к температуре , а второй размер относится к оттенку. То, что CITemperatureAndTint фильтра в основном делает это вычисление матрицы, которая адаптирует RGB значения от источника белой точки, определяемой нейтральным (srcTemperature, srcTint) к целевой белой точке, определяемой TargetNeutral (dstTemperature, dstTint), а затем применять эту матрицу на входе изображение (с использованием фильтра CIColorMatrix). Если Neutral и TargetNeutral имеют одинаковые значения, то после применения этот фильтр не изменится. Я не знаю деталей реализации iPhoto, но Я думаю, что две ползунки дают изменения температуры и оттенка (т. Е. Изменения между исходным и целевым значениями температуры и оттенка ), которые вы хотите добавить к исходному изображению.

Теперь я должен обдумать этот ответ, но это, кажется, очень хороший ответ от Apple.

+0

Вы когда-нибудь могли определить, какие значения изменяет ползунок и какими должны быть минимальные и максимальные значения ползунка (как для температуры, так и для оттенка?). то есть когда пользователь скользит ползунок для температуры, какое значение корректируется? и каковы пределы на слайдере? –

+0

Следующий ответ в другом потоке имеет минимальные значения в комментарии. http://stackoverflow.com/a/9202453/152853 –

+0

Температура измеряется в Кельвине и представляет собой «температуру» источника света, смоделированную излучателем черного тела. Фильтр позволит варьироваться от 2000 до положительной бесконечности, но 10000 является более полезной верхней границей.Оттенок без единицы и составляет от около -100 (очень зеленый) до +100 (очень пурпурный). Значения вне этого диапазона разрешены, но они приводят к очень сильным искажениям. –

0

Они должны быть двумерными векторами, содержащими цветовую температуру. По умолчанию (6500, 0) цвет останется неизменным, как описано here. Вы можете видеть, какие значения для цветовой температуры дают вам цвета в this wikipedia link. Я не уверен, для чего нужен второй элемент вектора.

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