Вычисление доминантного цвета изображения. Нормализация цветового баланса против баланса белого

Меня как-то спросили, страдаю ли я от похмелий.
Для того, чтобы были похмелья, нужно перестать пить.
Так что данная проблема просто не возникает.
(Приписывают Л. Килмистеру)

Попробуйте задать гуглу вопрос вроде: How to calculate the dominant color of an image? Или что-то вроде того же спросите у stackoverflow, для большей релевантности. В случае с гуглом вы получите результат примерно из более чем 30 миллионов поисковых ответов. 30 миллионов! 30, Клара!

Снимок экрана 2015-12-12 в 11.28.52

В общем я подумал недолго и понял: маловато. Надо бы добавить еще одну строчку. Тем более что вопрос не праздный, а вполне себе имеет практический смысл, в отличие, скажем, от поиска доминантных цветов из предыдущего поста. Решение этой задачи дает возможность проделать несколько простых манипуляций над фотографическим изображением. Например, исказить исходное соотношение цветов, т.е. «ухудшить» его технические характеристики и значит несколько улучшить перцептуальные свойства. А как вы уже заметили, наша теплая компания совершенно помешана на деструктивных способах обработки фотографических изображений, и значит нам условно полезно иметь этот инструмент в собственном исполнении. И целью сегодняшнего упражнения будет видоизменить общий баланс цветов исходной никчемной цифровой картинки до состояния нейтралей, чтобы получить возможность разбавить, в итоге, исходные цвета до приемлемо гармоничных. А для этого нам в первую очередь понадобится вычислить этот самый доминантный цвет.

Читать далее

Реклама

Самый лучший селективный HSV-adjustment фильтр ever.

Мы не заблудились, мы просто не знаем где мы находимся.
(South Park)

Наверное не будет преувеличением утверждение: каждый фотограф или человек занимающийся фотографией хоть раз в жизни использовал инструмент называющийся «Hue/Saturation» или вроде того. С этим весьма популярным инструментом есть одна интересная история: в природе не существует более-менее адекватной реализации доступной в исходных кодах. Каждый разработчик либо конструирует все самостоятельно, либо использует готовый код из свободного Gimp либо городит безумные конструкции вокруг расширений ImageMagic. Те же, кто знают тайну, попросту жмутся, не делятся исходниками или же выкладывают в сеть что-то вроде пресловутого Gimp. Пробовали с ним работать? Вот то-то и оно.

А давайте уже нарушим эту монополию, сорвем покровы с реализации этого инструмента в виде Metal-апического кода, но не под iOS, а, например, под OSX. Так удобнее крутить параметры слайдерами и видеть изменения в реальном времени. А еще будет удобно рисовать гистограмму и наблюдать как меняется представление картинки в «частотном домене».

Читать далее

Первый «настоящий» метал-api-ческий фильтр

Этот пост не для опытных «металлистов», было бы дерзко сразу вот так вот начать публиковать готовый код фильтров с минимумом комментариев. Поэтому будет много текста и вилами по воде, но зато подробно и поможет (надеюсь) осознать красоту и простоту идеи. Ко всему прочему, мне и самому интересно на сколько я могу низко пасть объяснить простым языком неофиту всю глубину падения прекрасного мира Metal. Во-вторых: все мне говорят я понимаю, что последовательное изложения материала упорядочивает информацию. И это важно.

Для первого раза выберем какой-то фильтр без объяснения что-это, зачем, какие фильтры бывают в природе и бывают ли только фильтры. Просто будем знать, что иногда с изображением можно выполнить какой-то трюк и его изменить, испортить, улучшить, или вообще синтезировать другое. Главная тема показать как с помощью iOS Metal API можно этого добиться. Никакой ловкости, только рутинное вбивание кода на клавиатуре. Начнем с классики жанра: фильтра управления насыщенностью изображения.

Читать далее