Pull to refresh
  • by relevance
  • by date
  • by rating

OpenCV Hackathon is coming

Open source *
image

Этим летом библиотека OpenCV отмечает свой двадцатый юбилей. OpenCV — самая большая библиотека компьютерного зрения в мире. Она используется чуть ли не в каждом мобильном телефоне, планшете и камере, не говоря уже о настольных системах и серверах. SourceForge рапортует о 20 миллионах скачиваний релизных версий библиотеки, и это число продолжает расти.
Читать дальше →
Total votes 5: ↑5 and ↓0 +5
Views 2.5K
Comments 0

Искусственный интеллект раскрывает секреты древних артефактов

ЦИТМ Экспонента corporate blog Image processing *Matlab *Popular science Artificial Intelligence

Использование глубокого обучения и обработки изображений для реставрации и сохранения произведений искусства.

Когда в 2005 году Карола-Бибиана Шёнлиб начала защищать докторскую диссертацию по математике, одним из ее первых проектов была помощь в реставрации средневековой фрески в Вене. Когда-то скрытые стенами старой квартиры, остатки росписи были испорчены белыми пятнами – следствие демонтажа стен за несколько лет до этого. Вместо краски, растворителей или смолы Шёнлиб использовала алгоритмы реставрации. «Были специалисты из Венского университета, которые начали физическую реставрацию», – говорит Шёнлиб. «Затем мы перешли к цифровой реставрации».

Читать далее
Total votes 9: ↑9 and ↓0 +9
Views 2.2K
Comments 0

Seam Carving — революция в масштабирование изображений

Lumber room
Масштабировать изображения можно несколькими способами.

1) nearest neighbor — убиваем или клонируем ближайшего соседа.
Cокращаем строки и колонки пикселов если нужно уменьшить, и дублируем их если нужно увеличить изображение — проще не бывает… И быстрей, наверное тоже… В общем всё хорошо, пока не вспоминаем про качество картинки.

2) bilinear — тут мы скрещиваем соседей.
Уменьшая изображение, меняем два пиксела на один, равняющийся чему-то среднему, а при увеличении точно такой-же пиксел вставляем между родителями. Не слишком сложно, но зато качество на порядок лучше!

3) bicubic — шведская семья.
Тут всё так-же как и с bilinear, только родителей больше. Т.е. на цвет «ребёнка» влияют все соседние пикселы, а иногда и соседи соседей. И это конечно ещё красивей.

4) vector/fractal based — тут алгоритмы посложней.
Если в кратце, то перед масштабированием, картинка векторизитруется, и в процессе выбора цвета для новых пикселов участвуют векторы, края которых делают чуть контрастнее. В результате изображение в основном выигрывает.

Вот, полюбуйтесь:

способы масштабирования наглядно
Читать дальше →
Total votes 43: ↑43 and ↓0 +43
Views 1.1K
Comments 30

Революция масштабирования — Rsizr.com

Lumber room

В этом хабратопике многоужаваемый eject представил нам новую технологию масштабирования изображений Seam Carving, разработанную в Исследовательской лаборатории Mitsubishi Electric. Кому лень читать, суть состоит в «умном» масштабировании, позволяющим неравномерно изменять пропорции картинки таким образом, чтобы оставить смысловое наполнение максимально нетронутым.

Вот первая известная мне реализация — Rsizr.com. Нужно сказать, очень впечатляет!

Комментарии, как говорится, излишни. Просто залейте своё изображение и поиграйте с масштабом. Только не советую загружать большие файлы — потребуется много времени на обработку.

По мотивам моего блога.

UPD: Наглядная демонстрация: http://youtube.com/watch?v=vIFCV2spKtg и http://rsizr.com/about/gallery.
Total votes 28: ↑27 and ↓1 +26
Views 346
Comments 36

Бинокулярное зрение и стереопсис

AR and VR
Хочу написать о том, чем занимаюсь в Тех. Университете Тампере.

Стереопсис (стерео-эффект) — ощущение протяжённости пространства и рельефности, возникающие при наблюдении реальных объектов, рассматривании стереопар, стереофотографий, стереоизображений и голограмм. Часто упомянается как «восприятие глубины».

Как известно (во-всяком случае большинство из нас что то про это слышали), изображение видимое левым глазом слегка отличается от изображения, получаемого правым глазом. Благодаря чему наш мозг в состоянии восстановить «глубину» наблюдаемой сцены. Однако как именно он это делает, да и как это вообще возможно знают далеко не многие.
Читать дальше →
Total votes 1: ↑1 and ↓0 +1
Views 2.7K
Comments 1

Пишем на картинках

PHP *
В течение последнего времени что-то часто стали мелькать статьи про обработку изображений на php. Скругленные края уже были, тени были, мокрый пол был, еще куча всего было.

А вот надписей вроде еще не было. Значит будут. :-)

Представляю вашему вниманию не большой, но в тоже время достаточно богатый возможностями класс (на основе GD) написания текста на картинках TrueType-шрифтами.
Код и пример под катом
Total votes 104: ↑88 and ↓16 +72
Views 14K
Comments 36

Графические фильтры на основе матрицы скручивания

Website development *
UPD: Заголовок изменен, что бы более соответствовать теме статьи

В статье пойдет речь об использовании convolution matrix (матрицы скручивания или матрицы свертки), с помощью которой можно создавать и накладывать на изображения фильтры, такие как blur, sharpen и многие другие.

Cтатья будет интересна не только веб-программистам, но и всем кто так или иначе занимается программной обработкой изображений, поскольку функции для работы с матрицей скручивания имеются во многих языках (точно известно о php и flash). Так же, статья будет интересна дизайнерам, использующим Adobe Photoshop, поскольку в нем имеется соответствующий фильтр (Filter-Other-Custom).

Примеры будут на языке PHP с использованием библиотеки GD. Теория, практика, примеры (осторожно, много картинок!)

под катом
Total votes 100: ↑98 and ↓2 +96
Views 38K
Comments 37

Пример отображения картинок с помощью ImageField и Lightboox2

Drupal *
Вчера хабраюзер ezs опубликовал инструкцию по настройке ImageFiled и Lightbox2. К сожалению, у него не было возможности сделать live preview этого дела и я решил сделать демострационный сайт, благо имеется несколько свободного места с хорошим каналом.

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

UPD: Иногда невозможно загрузить картинку, это происходит потому что как в этот момент обновляется база.
Total votes 10: ↑6 and ↓4 +2
Views 1K
Comments 11

Делаем Liquid Resize своими руками

Algorithms *
Вы наверное уже слышали о технологии масштабирования Liquid Resize, которая учитывает содержимое изображения. Если вам интересно как оно все работает и как можно реализовать все это самому, то читайте далее (осторожно, много рисунков).


(НЛО прилетело и растянуло этот рисунок здесь)
Читать дальше →
Total votes 230: ↑226.5 and ↓3.5 +223
Views 14K
Comments 125

Слежение за объектом по его цвету с использованием Aforge.NET

.NET *
Здравствуйте. Частая фраза: «мой первый пост» :). В нем хочу вам рассказать о своем небольшом проекте по отслеживанию объекта по его цвету. Сейчас это имеет довольно широкую область применения, например те же джойстики от Wii и Playstation 3. Основой для работы послужила разработка Андрея Кириллова Aforge.NET – довольно мощная штука для самопальной обработки изображений.
Код не претендует на «истину в последней инстанции», многое было упрощено (в одном месте, в некотором смысле даже допущено дублирование – для быстрого доступа к пикселам я создал свой класс, хотя аналогичные наработки были и в Aforge). Но тем не менее, код работает, отслеживает объект, выдает информацию о местоположении, позволяет динамически вычислять оттенок объекта (на случай изменения освещения).

Для заинтересовавшихся — прошу под кат.
Читать дальше →
Total votes 58: ↑48 and ↓10 +38
Views 20K
Comments 12

Обнаружение объектов методом Оцу

Image processing *
Sandbox
Здравствуйте, уважаемые хабрачитатели и хабракритики. Этот пост я хотел бы посвятить такой актуальной на сегодняшний день теме, как обнаружение объектов на изображениях.
В качестве одного из алгоритмов такого обнаружения рассмотрим выбор порога быстрым и эффективным методом Оцу.
Читать дальше →
Total votes 121: ↑117 and ↓4 +113
Views 37K
Comments 33

Измерение расстояния до объекта и его скорости

Image processing *
Sandbox
Tutorial
Технологию, которую я собираюсь Вам представить, я не встречал в найденных мной методах определения расстояния до объекта на изображении. Она не является ни универсальной, ни сложной, суть её заключается в том, что видимое поле (будем считать, что мы используем видеокамеру) калибруется линейкой и затем сопоставляется координата объекта на изображении с отметкой на линейке. То есть измерение ведётся по одной линии или оси. Но нам не нужно хранить отметку на линейке для каждого пикселя, алгоритму для калибровки нужно только знать размер линейки в пикселях и в метрах, а также координату пикселя, который является фактической серединой линейки. Очевидное ограничение — работает только на плоских поверхностях.

Кроме самого метода в статье рассмотрена его реализация на языке Python с использованием библиотеки OpenCV, а также рассмотрены особенности получения изображений с вебкамер в Linux, используя video4linux2 API.


Читать дальше →
Total votes 65: ↑63 and ↓2 +61
Views 49K
Comments 12

Headtracking или как увидеть трехмерный чайник на двухмерном мониторе

Programming *
В прошлом семестре брал я курс компьютерного зрения и под конец надо было делать финальный проект на любую тему, которая с этим связана. Стало мне интересно, можно ли при помощи веб-камеры отслеживать глаза пользователя и показывать ему 3д объекты с правильного ракурса, этим я и решил заняться. Т.е. сделать из монитора эдакое окно в виртуальный мир. Теперь же я хочу поделиться с хабрапользователями о том, как это у меня получилось и какие подводные камни встретились на пути.
Читать дальше →
Total votes 170: ↑170 and ↓0 +170
Views 8.5K
Comments 58

Viola Jones на собственной шкуре, часть 2. — Emotion? — OMG, Yes!!!

Algorithms *
Привет всем еще раз! Я решил сразу попробовать выпустить две статьи, практически в одно время, чтобы не прерывать цепь повествования, т.к. начало данной статьи очень важно!
Итак, многие ждали примеры моей программы и объяснения ее работы с точки зрения написания кода. Я же рассказываю последовательно, чтобы каждый смог ее повторить у себя на компьютере. Обращайте внимание побольше на обильные комментарии в коде, в них сила! И не бойтесь мега-мелкого скролла, т.к. информации много. Передислоцируйтесь в место с хорошим интернетом, в статье много схем и фотографий!
Let's get it started!
Total votes 40: ↑26 and ↓14 +12
Views 39K
Comments 10

Пиксельные искажения с билинейной фильтрацией в HTML5 canvas

JavaScript *Image processing *Canvas *

В данном посте я хочу описать простую методику пиксельного искажения изображения на «чистом» javascript в 2D-Canvas без использования специальных библиотек и шейдеров, путём прямого доступа к пикселям изображения. Надеюсь, это будет интересно и полезно как для общего развития, так и для решения каких-то задач.

Читать дальше →
Total votes 55: ↑52 and ↓3 +49
Views 7.7K
Comments 23

Tilt-Shift фотографии своими руками

Python *Image processing *
Что такое Tilt-Shift объективы и что с их помощью можно сделать знают многие. Недавно на хабре была статья о Tilt-Shift генераторе, который создает этот эффект путем обработки обычной фотографии. Но программка эта написана только для Windows, да еще и платить за нее надо. Все плагины для графических редакторов почему-то тоже требовали денег и лицензий. Поэтому было принято решение с этим вопросом разобраться самостоятельно и сделать инструмент пусть немного проще профессионального софта, и не идеально симулирующий оптику объектива, но бесплатный, открытый и доступный всем желающим! Что из этого получилось, а что нет — можете посмотреть сами.
Всех заинтересовавшихся прошу под кат. Текст, код, картинки.
Total votes 107: ↑91 and ↓16 +75
Views 66K
Comments 60

Матричные фильтры обработки изображений

Algorithms *Image processing *
Sandbox
Данная статья рассказывает не только о наиболее распространённых фильтрах обработки изображений, но в понятной форме описывает алгоритмы их работы. Статья ориентирована, прежде всего, на программистов, занимающихся обработкой изображений.

Читать дальше →
Total votes 40: ↑33 and ↓7 +26
Views 181K
Comments 27

OpenCV 2.4.3

Intel corporate blog Image processing *
Авторы: Анатолий Бакшеев, Кирилл Корняков(kirillkornyakov), Андрей Морозов(aod314), Вадим Писаревский, Олег Скляров(olegsklyarov), Евгений Таланин, Александр Шишков(AlexanderShishkov).

image image

Привет, Хабр!

Мы рады сообщить, что 2 ноября увидела свет новая версия OpenCV, свободной библиотеки компьютерного зрения. Этот пост написан разработчиками библиотеки, работающими в компании Itseez. Мы перечислим основные нововведения с момента выхода предыдущей версии, стоит отметить, что их достаточно много: новые алгоритмы, ускорение существующих, поддержка новых платформ, обновление процесса разработки, интеграции и тестирования, а так же обновлённая документация. За время подготовки релиза было закрыто более 210 задач на трекере (hackathon, release candidate, release): патчи, исправления ошибок, расширение существующей функциональности.

Но обо всём по порядку.
Читать дальше →
Total votes 102: ↑100 and ↓2 +98
Views 45K
Comments 12

Универсальный код C# под .NET и JavaScript

JavaScript *.NET *C# *

Введение


Приветствую вас, хабравчане. В данном топике я хотел бы осветить подробности разработки на C# под разнородные целевые платформы, в первую очередь такие как .NET и браузер (JavaScript). В качестве примера желающие могут изучить веб-сервис по обработке фотографий gfranq.com, в котором реализована клиентская и серверная обработка фотографий с помощью фильтров, а также функциональность коллажей на основе материала, описанного в данной статье.

Так как я не умею подбирать картинки для привлечения внимания, то она будет по теме:


Технические подробности под катом
Total votes 57: ↑53 and ↓4 +49
Views 34K
Comments 20

Uploadcare — файловое хранилище для сайтов и приложений

Self Promo
image
Привет! Хочу рассказать о проекте, который наверняка окажется полезным многим разработчикам. В двух словах объяснить, зачем он нужен, достаточно сложно, но я попробую. Uploadcare — сервис для приложений и сайтов, упрощающий получение файлов от пользователей, их хранение и передачу по сети.

Тот, кто хоть раз делал форму с <input type="file">, знает, что ничего сложного в этом нет, но есть неприятные моменты, возникающие по пути. Вот только некоторые из них:

— нельзя сохранить форму с файлом по ajax;
— нельзя показать форму с уже выбранным файлом;
— если вы ожидаете картинку, нужно убедиться, что загружена картинка;
— сервер должен быть готов принимать большое тело запроса;
— в некоторых фреймворках загруженный файл является источником повышенной опасности;
— удобная загрузка нескольких файлов реализуется достаточно сложно;
— индикация процесса загрузки реализуется еще сложнее;
— на диске сервера может закончиться место;
Читать дальше →
Total votes 56: ↑49 and ↓7 +42
Views 13K
Comments 44