Обновить
128K+

Обработка изображений *

Работаем с фото и видео

62,28
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

История Photoshop

Время на прочтение1 мин
Охват и читатели8.7K


Все мы, так или иначе, пользуемся Photoshop. Но знаем ли мы историю возникновения знаменитого графического редактора? Когда я был моложе, и впервые увидел, как работают в Photoshop, то задался вопросом: Каким же умным нужно быть, чтобы все это придумать? Рунет просто завален уроками, переводами уроков, и обзорами плагинов к фотошопу. Я решил добавить разнообразия и рассказать вам о том, как все начиналось.

Фоны старых квестов — методы разработки, секреты, советы

Время на прочтение12 мин
Охват и читатели44K


Сегодня мы исследуем вопрос разработки фонов «как в старых адвенчурах». Это не совсем то, чего вы от меня ожидали. Однако, очередная часть «Галопа Пикселя» задерживается по двум серьезным причинам. Во-первых, главы посвященные анимации требуют — качественной анимации, иначе они не смогут претендовать на лавры материала обучающего. Во-вторых, «галопу» необходима ещё одна публикация до начала цикла об анимации, который уже находится в разработке. Связано это с тем, что я занимаюсь не только классическим пиксель-артом, но и тем, что выходит за пределы канонических разрешений, и у меня, определенно, есть чем поделиться. К сожалению, такой тип пиксель-арта сейчас более моден, чем классика, если судить по откликам публики.

Давайте, впрочем, вернемся к теме сегодняшней публикации. Считаю это маленьким открытием, и мне непременно нужно поделиться им с теми, кто собирается соединить некоторый отрезок своей жизни с тем, что может называться классической адвенчурой. Быть может это поможет вернуть на рынок игры, которые немного оттеснят «хипстерский пиксель» заменив его на то, что может напомнить времена лучших игр от «Westwood Studios», «Sierra» и «Lucas Arts». Предположу вскользь, что множество художников и так знают это. И, тем не менее — я не заметил публикаций на эту тему. Наша братия не спешит делиться своими секретами, сохраняя некую монополию на собственные открытия.

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


Продолжить копать

Простой графический редактор с использованием OpenCV

Время на прочтение5 мин
Охват и читатели34K
В этой статье я расскажу, как достаточно быстро и просто написать редактор изображений на C++ с использованием библиотеки компьютерного зрения opencv. Реализованы такие эффекты, как насыщенность, экспозиция, резкость, контрастность и другие. Никакой магии!

image

Внимание! Под катом много графики и кода.
Читать дальше →

Венгерский алгоритм в задаче слежения за множеством движущихся объектов

Время на прочтение4 мин
Охват и читатели26K
Хочу рассказать об известном, но мало освещенном в литературе подходе к слежению за множеством движущихся объектов. Сложность этой задачи во многом заключается в том, что алгоритмы обнаружения и выделения объектов часто дают сбои, а сами объекты могут заслоняться другими объектами и элементами фона.

В общем случае решение задачи слежения содержит три основных этапа:
– выделение сегментов;
– установление соответствия между выделенными сегментами и отслеживаемыми объектами;
– уточнение или прогнозирование положения объектов интереса.

Сегментом в данном случае называют связную область изображения, выделяемую по признаку движения. В рамках данной заметки нас будут интересовать 2-й и 3-й из перечисленных этапов.
Читать дальше →

Бот для сапера с изюминкой

Время на прочтение8 мин
Охват и читатели61K
Наверное у многих такое бывает: на работе нечего делать, или нужно подумать перед выполнением очередной задачи, да или попросту нет ничего вкусненького к чаю, тогда рука автоматически тянется к мышке и начинает играть в сапера. И вот в порыве очередного приступа саперомании меня посетила мысль о том, что я уже не думаю, как раньше, где расположены мины, а просто на автомате по выработанному алгоритму тычу по полю, ломая мышку. А раз я действую по алгоритму, без особых творческих усилий, то можно написать бота, который будет играть вместо меня, наверняка внимательнее и быстрее.
Читать дальше →

ABBYY помогает в оцифровке редких изданий Сахалинской библиотеки

Время на прочтение3 мин
Охват и читатели9.8K
Сегодня мы расскажем вам, как помогали оцифровывать Сахалинскую областную универсальную научную библиотеку. Переводить библиотеки в электронный вид мы начали довольно давно. Постоянные читатели блога наверняка помнят обзорный пост по нашим библиотечным проектам, а также топики, посвященные оцифровке библиотеки Хартли и созданию каталога Королевского ботанического сада Эдинбурга. Итак, поехали.

Сахалинская областная универсальная научная библиотека существует уже 67 лет и остается одним из основных информационных, культурных и научно-исследовательских центров Дальнего Востока. Сегодня в библиотеке хранится около 617 тысяч различных изданий.
Читать дальше →

Поиск периодических элементов защиты Паспорта РФ с помощью преобразования Фурье: часть вторая

Время на прочтение8 мин
Охват и читатели22K
Многие документы содержат защитные элементы, такие как голограммы, водяные знаки, гильош и т.д. В процессе сканирования таких документов возникает проблема — защитные элементы мешают системам распознавания (OCR). При разработке Smart PassportReader мы провели исследование, направленное на поиск и устранение подобных защитных элементов с изображений документов.



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

Как и в прошлый раз, для этого будет использоваться преобразование Фурье.
Читать дальше →

Группируем одинаковые приложения из разных магазинов по иконке

Время на прочтение5 мин
Охват и читатели9.1K
Однажды случилось мне несчастье обратить свой взор на одну заманчивую вакансию. Все бы ничего, но, как обычно, подкинули тестовое задание. Если кратко, то нужно было сгруппировать ссылки на одно и тоже приложение в разных маркетах. По ссылкам были такие приложения как Skype, Skype WiFi, Skype Qik, Viber, и две игры с одинаковым названием Skyward. Среди магазинов были Google Play, App Store и маркет Windows Phone. В задании было так же описание граблей, мол, не надо особо привязываться на названия приложений, название компании разработчика и т.д. «Но ведь одинаковые приложения легко узнаваемы на разных платформах тупо по иконке» — подумал я, и полез выяснять детали. Но не все так просто.
Читать дальше →

Как я писал карту дождей

Время на прочтение14 мин
Охват и читатели17K
По следам недавней публикации про работу с картами метеорадаров я решил написать о собственном подобном опыте.

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

Не самый быстрый поиск в интернете показал, что такие радары есть, называются ДМРЛ (доплеровские метеорологические радиолокаторы), и снимки с них действительно выставляются в интернете. Есть российский сайт meteorad.ru, белорусский meteoinfo.by (правда, недоступно из России, не из России см. раскрывающееся меню слева), и еще есть сайт orm.mipt.ru. При этом самые приятные картинки — на meteorad.

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

Читать дальше →

Распознать нельзя оставить картинкой, или кое-что о сложных случаях оптического распознавания текста

Время на прочтение5 мин
Охват и читатели23K
На данный пост нас сподвигло интервью, которое наш европейский офис дал одному компьютерному журналу. Речь шла об ABBYYFineReader и о технологиях распознавания. Среди вопросов был и примерно такой:

What were the main challenges to be overcome when developing the software? Were there any particularly knotty problems?

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

И здесь есть повод задуматься. Всё-таки с точки зрения сложности задач не так уж это интересно – низкое качество изображения и декоративные шрифты. Мы примерно то же самое могли сказать и пять лет назад, и десять, и двадцать. Да, несомненно, прогресс есть – и для большей части версий известный обозреватель и наш старый друг Сергей Голубицкий находил как раз те картинки, которые оказывались на «переднем крае» наших технологий – чтобы именно их новая версия FineReader стала обрабатывать практически идеально, а старая пока «спотыкалась».

Но чтобы рассказать о том, какие трудности перед нами стоят ещё, стоит прибегнуть к небольшой метафоре. Вот какие трудности у вас возникли, чтобы решить следующую задачушкольный пример
Только не надо и правда её решать в уме: мы НЕ подбирали цифры, чтобы ответ был целым

Обзор алгоритмов сегментации

Время на прочтение8 мин
Охват и читатели102K

Этим летом мне посчастливилось попасть на летнюю стажировку в компанию Itseez. Мне было предложено исследовать современные методы, которые позволили бы выделить местоположения объектов на изображении. В основном такие методы опираются на сегментацию, поэтому я начала свою работу со знакомства с этой областью компьютерного зрения.
Сегментация изображения — это разбиение изображения на множество покрывающих его областей. Сегментация применяется во многих областях, например, в производстве для индикации дефектов при сборке деталей, в медицине для первичной обработки снимков, также для составления карт местности по снимкам со спутников. Для тех, кому интересно разобраться, как работают такие алгоритмы, добро пожаловать под кат. Мы рассмотрим несколько методов из библиотеки компьютерного зрения OpenCV.
Читать дальше →

«Сладкое» программирование, или Как выделить этикетку с банки варенья в Mathematica?

Время на прочтение5 мин
Охват и читатели11K

Перевод дискуссии "How to peel the labels from marmalade jars using Mathematica?" с сайта Mathematica at StackExchange.
Код, приведенный в статье, можно скачать здесь (~31 МБ).
Выражаю огромную благодарность Кириллу Гузенко KirillGuzenko за помощь в переводе и подготовке публикации

Как можно выделить содержимое этикетки с указанной ниже банки (точка съёмки кадра, геометрия банки, её содержимое — всё это нам неизвестно),



чтобы получить нечто подобное — ту же самую этикетку в том виде, в каком она была до того, как оказалась на банке?



Основная идея заключается в следующем:

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

Предлагаемый нами алгоритм работает только для изображений, в которых:

  • Этикетка ярче фона (это нужно для обнаружения этикетки).
  • Этикетка прямоугольная (это нужно для того, чтобы оценить качество отображения).
  • Банка должна занимать вертикальное положение (это нужно для того, чтобы сохранить простую форму функции отображения).
  • Банка должна быть цилиндрической (это нужно для того, чтобы сохранить простую форму функции отображения).

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

Получившийся в конечном итоге алгоритм работает полностью автоматически (однако есть опция ручного задания границ банки), то есть берёт исходное изображение, после чего выдаёт изображение с сеткой и этикетку.
Читать дальше →

Карта дождей

Время на прочтение2 мин
Охват и читатели64K
Я часто езжу на велосипеде и мотоцикле, поэтому вопрос «а будет ли дождь» беспокоит меня достаточно часто. Как оказалось, Центральная Аэрологическая Обсерватория регулярно выкладывает у себя на сайте снимки с метеорологических радиолокаторов. Чтобы ими пользоваться не хватает двух вещей: возможности приблизить карту и посмотреть как двигались облака за последний час. Если добавить эти две фичи, получается полезная штука:

Плохие новости: Росгидромет запретил ЦАО публиковать данные в реальном времени, теперь они доступны с задержкой в 24 часа. Ставьте лайки, возможно, получится в каком-то виде получить актуальные данные обратно.
Ничоси, про это даже петиция есть — "Вернуть открытый доступ снимков ДМРЛ (радары)". И в Росгидромет уже письма писали.
Читать дальше →

Ближайшие события

Vision and Sports Summer School 2015 в Праге: как это было

Время на прочтение8 мин
Охват и читатели4K
Этим летом во время отпуска мне посчастливилось принять участие в Vision and Sports Summer School 2015 (VS3 2015) в Праге. О своих впечатлениях я хочу рассказать в своей статье, а возможно даже мотивировать кого-то подать заявку на участие в этой школе.
Читать дальше →

Дополненная реальность на Qt

Время на прочтение8 мин
Охват и читатели38K


Сейчас дополненная реальность – это одно из самых интересных направлений. Поэтому я и взялся за ее изучение, а результатом этого стала собственная реализация кроссплатформенной безмаркерной дополненной реальности на Qt. Речь в этой статье пойдет о том, как это было реализовано (или же как это реализовать самому). Под катом можно найти демку и ссылку на проект на гитхабе.
Читать дальше →

Фурье-вычисления для сравнения изображений

Время на прочтение10 мин
Охват и читатели71K
Традиционная техника “начального уровня”, сравнения текущего изображения с эталоном основывается на рассмотрении изображений как двумерных функций яркости (дискретных двумерных матриц интенсивности). При этом измеряется либо расстояние между изображениями, либо мера их близости.

Как правило, для вычисления расстояний между изображениями используется формула, являющаяся суммой модулей или квадратов разностей интенсивности:
d(X,Y) = SUM ( X[i,j] — Y[i,j] )^2

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

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

Наличие большого числа библиотек, реализующих Фурье преобразований (во всевозможных вариантах быстрых версий), делает реализацию алгоритмов сравнения изображений не очень сложной задачей для программирования.
Читать дальше →

Цветовая деконволюция на Wolfram Mathematica

Время на прочтение4 мин
Охват и читатели6.5K
На написание этой заметки меня вдохновила недавняя статья про кишочки обезьян. Поскольку чукча не читатель, чукча — писатель, то решил пробовать сделать подобное самому. Тем более задача не кажется сложной и много кода не потребуется.

image

Простейший алгоритм, который приходит в голову, выглядит так:
  • Определяем несколько базовых цветов картинки. RGB компоненты этих цветов будем использовать как базисные вектора.
  • Цвет каждого пикселя разлагаем в линейную комбинацию базисных.
  • Выводим изображение для каждого базисного цвета.
  • Самооценка автоматически повышается.

Далее, более подробно по каждому пункту.
Читать дальше →

Метод широкополосного сигнала (библиотека классов)

Время на прочтение9 мин
Охват и читатели8.3K

Предисловие


(из статьи КОМПЬЮТЕРНАЯ СТЕГАНОГРАФИЯ ВЧЕРА, СЕГОДНЯ, ЗАВТРА. Технологии информационной безопасности 21 века. /Барсуков В. С., к.т.н., Романцов А.П./1998/)
Задача надежной защиты информации от несанкционированного доступа является одной из древнейших и не решенных до настоящего времени проблем. Способы и методы скрытия секретных сообщений известны с давних времен, причем, данная сфера человеческой деятельности получила название стеганография. Это слово происходит от греческих слов steganos (секрет, тайна) и graphy (запись) и, таким образом, означает буквально “тайнопись”, хотя методы стеганографии появились, вероятно, раньше, чем появилась сама письменность (первоначально использовались условные знаки и обозначения).
В дальнейшем для защиты информации стали использоваться более эффективные на время создания методы кодирования и криптографии.
Как известно, цель криптографии состоит в блокировании несанкционированного доступа к информации путем шифрования содержания секретных сообщений. Стеганография имеет другую задачу, и ее цель — скрыть сам факт существования секретного сообщения. При этом, оба способа могут быть объединены и использованы для повышения эффективности защиты информации (например, для передачи криптографических ключей).
Как и любые инструменты, стеганографические методы требуют к себе внимания и осторожного обращения, так как могут быть использованы как для целей защиты, так и для целей нападения.

Алгоритм


В соответствии с методом широкополосного сигнала, каждый бит данных кодируется последовательностью изменённых яркостей пикселей в соответствии со значениями бит псевдослучайной последовательности.
Метод широкополосного сигнала предполагает возможность выработки у отправляемой и принимающих сторон одинаковой псевдослучайной последовательности или, по крайней мере, псевдослучайных последовательностей со статистическими характеристиками эквивалентными равным.
При этом в качестве контейнера для размещения данных может выступать не только само изображение, но и обратимое преобразование этого изображения, например, спектр, получаемый в результате Фурье преобразований. Наличие большого числа библиотек, реализующих Фурье преобразований (во всевозможных вариантах быстрых версий), делает реализацию алгоритмов не очень сложной задачей для программирования.
Читать дальше →

Как разобрать обезьяньи кишки на составные части. Изучаем цветовую деконволюцию

Время на прочтение4 мин
Охват и читатели24K

Как многие помнят, я работаю в лаборатории, где мы работаем с живыми и не очень организмами. Науку двигаем, короче. Обычно вперед. Иногда в качестве образцов нам достаются мертвые обезьяны, ткани которых потом идут на экспериментальные задачи. Выглядит обычно это крайне жизнерадостно. Раздается звонок в 11 часов вечера, и тебе сообщают, что в питомнике обезьянка убилась. Почти не поврежденная, соседи только сердце съели. Вздыхаем, лезем в расписание рейсов и едем в аэропорт. На месте тебе выдают нужные запчасти убиенной и складывают в прозрачный контейнер с консервационным раствором. В аэропорт с этим тащиться уже нельзя, так как ограничен провоз жидкостей. Идем на ж/д вокзал на экспресс до Краснодара. Милые девушки на контроле как правило приобретают восхитительный салатовый оттенок при виде медленно кружащихся органов в нежно-розовом растворе.
В-общем, привезли, нарезали все, что нужно ломтиками, покрасили… Но тут оказывается, что полученные исходники нужно обработать и посчитать в автоматическом режиме… Сразу хочу уточнить, что я врач-исследователь, а не профессиональный программист или математик. Поэтому, если что-то покажется ошибочным — буду рад правкам.
Читать дальше →

Фурье-обработка цифровых изображений

Время на прочтение9 мин
Охват и читатели46K

Предисловие


Цифровая фотография или иное растровое изображение представляет собой массив чисел, зафиксированных сенсорами уровней яркости, в двумерной плоскости. Зная что с математической точки зрения тонкая линза выполняет преобразование Фурье изображений, размещённых в фокальных плоскостях, можно создать алгоритмы обработки изображений, являющихся аналогами обработки изображений классической оптической системой.

Формула таких алгоритмов будет выглядеть следующим образом:
  1. Z=FFT(X) – прямое двухмерное преобразование Фурье
  2. Z′=T(Z) – применение функции или транспаранта к Фурье-образу изображения
  3. Y=BFT(Z′) – обратное двухмерное преобразование Фурье

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

Примеры реализации


  • Алгоритм размытия изображения
  • Алгоритм повышения резкости изображения
  • Алгоритм масштабирования изображения

Реализованные алгоритмы являются частью библиотеки с открытым исходным кодом FFTTools. Интернет-адрес: github.com/dprotopopov/FFTTools
Читать дальше →