Что такое Tilt-Shift объективы и что с их помощью можно сделать знают многие. Недавно на хабре была статья о Tilt-Shift генераторе, который создает этот эффект путем обработки обычной фотографии. Но программка эта написана только для Windows, да еще и платить за нее надо. Все плагины для графических редакторов почему-то тоже требовали денег и лицензий. Поэтому было принято решение с этим вопросом разобраться самостоятельно и сделать инструмент пусть немного проще профессионального софта, и не идеально симулирующий оптику объектива, но бесплатный, открытый и доступный всем желающим! Что из этого получилось, а что нет — можете посмотреть сами.
Читать полностью »
Рубрика «обработка изображений» - 130
Tilt-Shift фотографии своими руками
2012-03-16 в 15:47, admin, рубрики: image processing, PIL, python, tilt-shift, обработка изображений, метки: image processing, PIL, python, tilt-shift, обработка изображенийФакторный анализ вектора критериев в задачах распознавания образов
2012-03-15 в 9:47, admin, рубрики: data mining, Алгоритмы, обработка изображений, распознавание образов, метки: распознавание образовВведение
При разработке систем распознавания образов часто возникают проблемы при оценке параметров, которые используются в качестве входного вектора. В данной статье я опишу подход, который можно применять при анализе векторов обучающей выборки, с целью обнаружения зависимостей между параметрами, а также сокращения размерности, что позволит в свою очередь сократить затрачиваемые вычислительные ресурсы при анализе данных и повысить репрезентативность обучающей выборки.
Целью данной работы является определение факторов входного вектора критериев обучающей выборки, предназначенных для решения данной задачи.
Читать полностью »
Быстрое сжатие изображений по алгоритму JPEG на CUDA
2012-03-14 в 14:35, admin, рубрики: benchmark, cpu, CUDA, DCT, fpga, GeForce, gpgpu, gpu, HPC, Nvidia, opencl, parallel computations, RLE, высокая производительность, высокопроизводительные вычисления, обработка изображений, параллельные вычисления, метки: benchmark, cpu, CUDA, DCT, fpga, GeForce, gpgpu, gpu, HPC, Nvidia, opencl, parallel computations, RLE, высокопроизводительные вычисления, параллельные вычисленияКраткое содержание: Создан быстрый кодер FVJPEG для сжатия изображений по алгоритму JPEG на видеокартах NVIDIA. Значительное ускорение получено при распараллеливании алгоритма, его реализации и оптимизации с помощью технологии CUDA. По скорости сжатия кодер FVJPEG превосходит все существующие в настоящее время программные и аппаратные решения для компрессии изображений по алгоритму Baseline JPEG.
При сравнении алгоритмов сжатия изображений с потерями, практически всегда обсуждаются степень сжатия и качество получаемой картинки, а вот время компрессии почему-то считается второстепенным показателем. По всей видимости, для большинства приложенийЧитать полностью »
Обработка изображений / [Из песочницы] Реализация RGB-алгоритма изменения контраста изображения
2012-03-05 в 9:49, admin, рубрики: opencv, openmp, Алгоритмы, обработка изображений, оптимизация, метки: opencv, openmp, Алгоритмы, обработка изображений, оптимизация
Во время работы над программой, предназначенной для обработки видео-потока, возникла необходимость реализовать алгоритм изменения контраста изображения.
Так как программа была предназначена для обработки видео, то от реализации требовалась высокая производительность, в том числе способность обрабатывать видео разрешения Full HD. Код был написан на С++ с использованием библиотеки OpenMP.
Существует несколько алгоритмов изменения контраста, часть из которых рассмотрена в этой статье [1].
Рассмотрим RGB-алгоритм изменения контраста.
Вначале мыЧитать полностью »
Обработка изображений / Пиксельные искажения с билинейной фильтрацией в HTML5 canvas
2012-02-21 в 16:31, admin, рубрики: canvas, fisheye, html5, image processing, javascript, zoom, обработка изображений, метки: Canvas, fisheye, html5, image processing, javascript, zoom, обработка изображений
В данном посте я хочу описать простую методику пиксельного искажения изображения на «чистом» javascript в 2D-Canvas без использования специальных библиотек и шейдеров, путём прямого доступа к пикселям изображения. Надеюсь, это будет интересно и полезно как для общего развития, так и для решения каких-то задач.
Canvas и пиксели
Я не буду описывать полностью объект Canvas, для этого есть документация. Остановимся на том, что нам нужно. Во-первых, это получение 2D-контекста:
var context = canvas.getContext('2d');
Этот контекст умеет многое делать сЧитать полностью »
Ненормальное программирование / Русская рулетка с использованием Kinect
2012-02-06 в 12:25, admin, рубрики: Kinect, видео, обработка изображений, метки: kinect, видео, обработка изображений
Один из программистов, работающих с Kinect, решил создать некий аналог «русской рулетки», только без пистолета. Никакого риска или угрозы для жизни здесь нет — просто компьютерная игра, или, если хотите, интересный программный эксперимент. Даже пистолета нет — вместо него используется рука играющего. Для «выстрела» достаточно направить два пальца себе в голову, и «нажать на курок», т.е., опустить большой палец.Всего у пользователя получается 8 «выстрелов», из которых один будет смертельным. Само собой, «смертельным» будет случайный выстрел, а не каждый восьмой. Эффект от попадания простенький — это и хорошо, зато крови нет. ПростоЧитать полностью »
Excel vs Таблицы Google
1970-01-01 в 0:00, admin, рубрики: Алгоритмы, Занимательные задачки, Лайфхаки для гиков, обработка изображенийПример из практики. Понадобилось разобрать вот такие строки из 0 и 1, что на фото 1 в ячейке A2.
Это кусочки BMP, что, впрочем, неважно.
Каждая последовательность длиной 4 байта, т.е. 32 бит. Нужно было извлечь из таких последовательностей серии единиц и измерить длину этих серий.
Для данного примера нужно было получить на выходе 1 2 1 2 7.
Можно было начать с распределения символов по столбцам, использовав штатную Экселевскую приблуду Данные/Текст по столбцам. Однако, это требует ручной установки 31 разделителя, что, конечно же, влом. Хотелось, чтобы было так: загрузил на лист кучку байт и сразу получил результат.
Поэтому пришлось нагородить набор костыликов.
В ячейке B2 избавился от лишних нулей формулой СЖПРОБЕЛЫ. Предварительно пришлось нули заменить на пробелы формулой ПОДСТАВИТЬ, а после сжатия вернуть их на место этой же формулой.
В C2 заехал 0. Это чисто служебный нолик, для дальнейшего копирования формул вправо и вниз.
В D2 — формула (видна на фото 2).
Находит позицию первого нуля. В E2 — второго и т.д. Как видим, в сжатой последовательности (B2) первый ноль — в позиции 2, второй — в 5-й, третий — в 7-й и 4-й ноль — в 10-й. В последовательности всего 4 нуля, и поэтому в H2 отобразилась бы ошибка #ЗНАЧ, если бы не обработка этой ошибки формулой ЕСЛИОШИБКА. Она заменяет #ЗНАЧ на 99. «Почему 99?» — вы можете спросить. Это число нам понадобится в дальнейших расчетах, терпение.
Читать полностью »