Коррекция нелинейных геометрических искажений

В Photoshop CC есть такой очень важный и полезный инструмент, называется Free Transform (и еще несколько вариантов на туже тему). Очень нужная штука, но работает почти никогда.

Снимок экрана 2016-06-21 в 19.50.38Вот если загрузить PNG или вектор — то запросто. А обычный JPEG вызывает у редактора отторжение. И пока не создашь выделение или слой с выделением — меню трансформации остается неактивным. А еще мне порядком, поднадоела вот эта тестовая картинка (та что за меню торчит), точнее не сама картинка, а то как камера iPhone с её широко-угольным объективом портит пропорции лица. Конечно, в PS есть Lens Correction, исправляющий дисторсии и прочие недостатки оптических систем (хотя на картинке не недостаток, а фича), но во-первых: он тормозной, во-вторых: не всегда хочется исправить просто «бочку» или «подушку».

Попробуем устранить это недоразумение и потренируемся сегодня на кроликах Bezier-кривых — позволяющих подкрутить ручками практических любые, самые запущенные нелинейные дефекты геометрии. Или наоборот: накрутить самые безумные искажения в «художественных» целях.

Читать далее

Реклама

Геометрические фильтры: «игрушечные» шейдеры Metal. Анимация процессинга.

Параллельные прямые не пересекаются, если вы не наклоняете одну из них или обе.
И да, никогда не пейте перед дифференцированием!
(Народная мудрость)

Мне, как неопытному блогеру, все еще представляется, что для публикации любого поста нужно иметь какой-то повод. Но, на днях, т.е. совсем недавно, комрад Дима Новак,  его подкинул: пристыдил нас за отсутствие в нашем концептуальном движке обработки фотографий возможности работать с геометрией картинки. А это, надо сказать, справедливый упрек — даже аналоговая темная комната имеет такие инструменты по умолчанию, а уж в эпоху повсеместного распространения суперкомпьютеров среди пользователей не иметь такого тулкита в арсенале — что-то вроде винтажного пижонства.

Читать далее

Чем измерить эстетичность. Энтропия и вариативность гармонизированного изображения

«Вовсе не обязательно, что бы всюду был смысл: смешно — ну и ладно.»  
(Пол Маккартни)

А займемся-ка мы сегодня изучением такого важного параметра как энтропия информации и её производного: энтропии изображения и всем тем, что к ней приводит. И главное, осознаем чем она нам может быть интересна. К примеру, почему бы нам не придумать какой-то численный индикатор эстетики в изображении, и попробовать в этом контексте энтропию в плане измерения «эстетичности» изображения, выяснив предварительно, что можно под этим термином понимать.

Читать далее

Палитра и доминантные цвета изображения

При… использовании цвета в цветовом оформлении, например, архитектуры, очень существенным является учет не только стен, потолка и пола, но и всех архитектурных деталей и всего оборудования помещения…
(Матюшин М.В.)

Пока земляне старательно бухали отмечали наступление Нового Года и провожали Рождество, я решил тоже побухать отдохнуть и развлечься. В качестве упражнения Дима Климкин подкинул одну бессмысленную для нашего проекта, но весьма любопытную в целом задачу: а не можем ли мы получить из картинки её палитру для определения гармонической целесообразности этого изображения. А еще точнее её доминантные цвета. Да не вопрос, подумал я, и между блинами к новогоднему столу и рибаем для перекуса, накидал первую версию анализатора палитры изображения. Посмотрел на результат и понял: что-то не то. Потом накидал второй вариант и оставил оба. Поэтому праздничный пост будет происходить вокруг исследования того как правильно определять палитру изображения в ограниченом цветовом пространстве, как найти доминантные цвета изображения и в чем разница между палитрой и доминантными цветами.

Читать далее

Расчет гистограммы изображения на GPU. Атомарные типы данных Metal и операции над ними

Не далее как месяц назад я описал незатейлевый процесс создания собственной версии фото приложения портящего замечательные цифровые фотографии до приемлемого результата. В качестве основного инструмента обработки (Image Processing) мы использовали гомогенные преобразования цветового пространства через так называемые таблицы поиска или CLUT. Этот замечательный, надежный, супер быстрый и незаменимый способ работает всегда и с возбуждающим успехом. При одном условии: исходная картинка должна быть получена при определенных условиях. А это, как хорошо не известно многим, не достижимое условие, хотя и воспроизводимое с некоторым приближением за неприятный прайс.

Читать далее

Оптимизация шейдеров Apple Metal на примере работы с конвертером цветовых пространств: RGB/HSV.

Баталии в блоге Degradr по поводу эстетики и математики в эстетике и эстетической математики, и еще какого-то другого творчества, которое все несли не стесняясь, разгорелись не шуточные. Хочется немного уйти от гуманитарного и погрузиться в наше любимое: в технодр@черство. Прошу дам меня извинить: сегодня попытаемся выжать из GPU последние капли крови производительности. A по простому — мы будем пытаться оптимизировать код, который, казалось бы и оптимизировать уже невозможно. Но…

Читать далее

Шаблоны функций Metal Shading Language

Metal Shading Language (MSL) — универсальный язык программирования для создания графических и вычислительных функций используемых с приложениями написанными с использованием Metal Framework. Так говорит тутонхамон Apple.

И это в действительности так. Мало того, что MSL реализует синтаксическое подмножество C++, фактически это C++ базирующийся на спеках C++11. Например в MSL реализованы атомарные типы. Об этой фишке я как-нибудь расскажу отдельно с примерами. Однако надо понимать, что GPU не CPU и не поддерживает некоторые специфические вычисления или реализует их крайне не эффективно по сравнению с CPU, поэтому MSL — это некое ограниченное подобие C++11. К слову, MSL не поддерживает лямбда-функции (чорт, а было бы круто конечно, если бы да…). В любом случае это, хоть и маленький шаг одной яблочной компании, но огромный шаг всего человечества.

Читать далее