Входные параметры CITemperaAndTint (CIFilter) - PullRequest
3 голосов
/ 25 декабря 2011

Мне не удается понять входные параметры фильтра CIF с именем CITemperaAndTint. В документации сказано, что у него есть два входных параметра, которые являются 2D CIVector.

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

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

Снимок экрана приложения iPhotos Temperature and Tint UI:

Снимок экрана iPhotos Temperature and Tint UI http://dl.dropbox.com/u/29925418/Screen%20Shot%202011-12-25%20at%2012.28.16%20PM.png

Как и ожидалось: один ползунок для температуры и один для оттенка. Как яблоко «привязало» значение каждого ползунка к 2D-вектору? akaru уже задавал этот вопрос, но не получил ответа: Что случилось с CITemperaAndTint, имеющим векторные входы?

Ответы [ 2 ]

9 голосов
/ 13 января 2012

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

CITemperaAndTint имеет три входных параметра: Image, Neutral и TargetNeutral.Нейтральные и TargetNeutral относятся к типу 2D CIVector, и в обоих из них обратите внимание, что первое измерение относится к температуре, а второе измерение относится к оттенку.В основном фильтр CITemperaAndTint выполняет вычисление матрицы, которая адаптирует значения RGB от исходной белой точки, определенной Neutral (srcTemperame, srcTint), до целевой белой точки, определенной TargetNeutral (dstTe Temperature, dstTint), и затем применяет эту матрицу к входному изображению(используя фильтр CIColorMatrix).Если Neutral и TargetNeutral имеют одинаковые значения, изображение не изменится после применения этого фильтра.Я не знаю деталей реализации iPhoto, но я думаю, что две ползунка дают изменения температуры и оттенка (то есть различия между исходными и целевыми значениями температуры и оттенка), которые вы хотите добавить к исходному изображению.

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

0 голосов
/ 04 января 2012

Это должны быть двухмерные векторы, содержащие цветовую температуру. Значение по умолчанию (6500, 0) не изменит цвет, как описано здесь . Вы можете увидеть, какие значения цветовой температуры дают вам какие цвета в этой ссылке в Википедии . Я не уверен, для чего предназначен 2-й элемент вектора.

...