Что-то вроде мотивационного вступления.

Рано или поздно любой разработчик под iOS или OSX (да и вообще любой разработчик на любой платформе, но я больше знаю про вот всех вот этих…), который хоть немного фотографирует для себя, семьи, друзей, подруг и всего остального человечества и пользует такие программы как Photoshop, Lightroom и уж тем более Instagram, пробует или мечтает сделать свой уникальный Photoshop/Lightroom/Instagram. Или не свой уникальный, но мобильный или более удобный, или более крутой, а результат должен быть лучше, получен проще, в реальном времени, одной кнопкой — и это будет свое и неповторимое. На самом деле, кончено, мы все об этом прекрасно знаем и не боимся сознаться себе — нам это все это просто дико интересно. Интересно погрузиться в мир новых возможностей и высосать из него по максимум инжоя.

Очевидно, что работа с изображениями предоставляет неисчерпаемые возможности такого рода. Доказывать, обосновывать и кривляться вокруг этой темы нет никакой надобности — достаточно выйти на улицу и увидеть бесконечное количество людей с зеркалками, беззеркалками, смартфонами и мыльницами усердно фиксирующими рандомную действительность вокруг себя. Таких людей миллионы, а значит и вероятность найти аудиторию своему представлению о правильной картинке всегда больше нуля. За примерами далеко ходить не нужно: веселый проект по ухудшению фотографий Degradr, в котором мне доводится участвовать тому доказательство. За 5 месяцев своего физического присутствия в публичном пространстве он оброс сообществом в несколько десятков тысяч любителей исказить цвета исходной фотографии. Это ничего не значащая для финансового результата цифра, таки говорит о некотором интересе публики к результатам нашего эстетического эксперимента, очевидным призером которого на сегодняшний день является публичная сеть Instagram — прямое доказательство уже финансового успеха возможностей соврменной вычислительной техники и людей, которые когда-то немного знали о Image Processing.

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

Однако чаще, чем можно себе представить, работа с изображением спотыкается о сложности непреодолимого характера: выбор инструментария. Или отсутствие опыта. Или не понимания основ работы с изображениями, алгоритмами обработки изображений или, наконец, слишком медленными вычислениями. Все знают Gimp. Или пользовались им. Код смотрели? Отличный, кстати. Но у такого подхода (платформа-независимость) есть один существенный изъян: крайне низкая производительность, однопоточный или слабо использующие параллельные вычисления решения, и т.п. и т.д.

А теперь представьте, что вы сможете производить вычисления над картинками на своем смартфоне в 10-ки раз быстрее, чем это делаете Photoshop или в сотни, а местами и в тысячи раз быстрее, чем это делает Gimp. А писать алгоритмы обработки на простом и доступном диалекте C++.

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

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

Цель этого блога немного упорядочить собственные знания, немного увеличить количество релевантных поисковых запросов по практическому применению доступных инструментов для Image Processing на русском языке под iOS и тем самым, немного подогреть интерес к прикладной теме Image Processing на мобильных устройствах в русском сегменте интернета. Возможно найти единомышленников и подтолкнуть кого-то окунуться в мир впечатляющих возможностей современных технологий параллельной обработки больших массивов данных, коими изображения, с точки зрения этих вычислений и являются.

Также, в цикле статей этого блога будут показаны общие принципы и реализации некоторых алгоритмов обработки изображений из обязательного арсенала разработчика. Специальным номером, например, будет публикация кода «супер-быстрого» варианта работы с HSV-пространством и улучшеной версией работы с цветовым кругом в HSV-пространстве. Для сравнения приведу пример работы инструмента HSV в Photoshop и обработку той же картинки оригинальным алгоритмом.

Все практические примеры будут реализованы на iOS Metal — относительно новом слое iOS и теперь OSX. Почему Metal и почему Image Processing на Metal будет подробно разобрано в цикле последующей статей.

Запомните: iOS Metal — это действительно круто. Image Processing — весело и несложно. Enjoy!

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s