Деформация цветовых пространств методом Moving Least Squares

— Меньше оваций, больше ассигнаций!
(из фильма «O Brother, Where Art Thou?»)

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

Сегодня предлагаю отдохнуть от чисто программистского трюкачества и заняться настоящими хардкорным факин-балавством, но уже не в терминах простых и понятных объектов, а будем искривлять и портить то, что так любим: пространства.  Цветовые. Например, так:

Читать далее

Реклама

Как из SCNSphere сделать что угодно с помощью Metal. Например, 3D RGB-Cube

Джулс: Знаешь почему так? 
Брэд: Метрическая система?
Джулс: Гляди как наш Бред мозговит!
Смышленый сукин сын, это точно — всё просек.
(из фильма «Криминальное чтиво»)

Дорогие слушатели нашей радиостанции, если вы переодически следите за нашими выпусками, то в целом в курсе наших новейших исследований цвета в нашей высоко-профессиональной любительской лаборатории. И уже имеете представление о том как цвет влияет на общее восприятие изображения. Очень важной фишкой в таких исследованиях являются цветовые пространства, в которых, обычно, можно производить манипуляции с пикселами картинки, системно её «ухудшая». Так удачно сложилось, что почти все такие пространства 3-х компонентные. А это означает, что мы можем попытаться визуализировать то как наши дурные наклонности могут его деформировать относительно исходного состояния в 3D сцену.

В многообразии фреймворков Apple есть очень мощный SDK SceneKit.  Сегодня мы распотрошим сразу двух кроликов: изучим как нам нарисовать произвольную 3D-фигуру с помощью инструментов SceneKit. А так же научимся добавлять очень большое количество дополнительных объектов в 3D-сцену, быстро её  деформировать, модифицировать и манипулировать свойствами всех добавленных объектов с помощью Metal.

Читать далее

Доступ к пикселям текстуры в Metal

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

В последнее время я наблюдаю некоторый рост интереса к Metal со стороны разработчиков: переодически получаю отзывы и благодарности от вас, и даже ссылочки на приложения в AppStore, при разработке которых помогли посты этого ресурса. Это приятно, чоуж.

С другой стороны, Apple таки приближается к Swift 5, замораживает синтаксис и объявляет совместимость по ABI. И хотя Objc или C++ реализации приложений на Metal все еще субъективно шустрее чем Swift, а код не нужно переписывать от версии к версии практически с нуля, Swift начинает выглядеть как штука, на которой уже можно писать примеры для важных постов без вопросов к версии  XCode для сборки.

А еще мне хочется проверить работу шорткода [Gist] вместо кривого и дурацкого  [Code]. Ну вы поняли.

Читать далее

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

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

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

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

Читать далее

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

Идеальные фигуры встречаются только в геометрии.
(Кто-то пошутил)

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

Поэтому сегодня пост, о том как самостоятельно изготовить быстрый, легкий и в меру незагруженный тулкит. Будем решать частный, но самый распространенный случай коррекций: исправление искажений проекции: ровно тот случай, что описал Антон, когда плоскость проекции изображения фотографии в момент фиксации не соответствует «правильной» (плоскости объекта съемки и фокальная плоскость не параллельны).

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее