Обновить
128K+

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

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

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

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

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

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


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

Комментарий к алгоритму выделения контуров Канни

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

Аннотация


image
В статье Детектор границ Канни, как я уже и писал в комментариях к ней, искажена и потеряна суть алгоритма в том месте, где происходит поиск градиента. Для этого там используется ядра Собеля, о которых Канни совсем ничего не говорил. Я написал поправку, которая позволят алгоритму выделения контуров работать быстрее. Так же эту статью можно считать продолжением записи О градиенте изображения.
В статье не рассматриваются вопросы с выбором оптимального шага дискретизации ядра смаза.
Читать дальше →

Детектор границ Канни

Время на прочтение6 мин
Охват и читатели103K
Доброго времени суток!

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

Обобщение медианного фильтра

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

Аннотация


В данной статье рассказывается об уникальном фильтре, статья о котором появилась в 1990 году: Маслов А.М., Сергеев В.В. Идентификация линейной искажающей системы с использованием ранговой обработки сигналов // Компьютерная оптика. — М., 1990. — Вып.6. — С.97-102. Данный алгоритм получил название «Алгоритм ранговой обработки» и по факту является обобщением медианного фильтра.
Применение данного фильтра оправдано в двух случая — для подавления шума и для уменьшения смаза.
image
Рисунок 1 — исходное изображение, 2 — смазанное и зашумленное солью.
Читать дальше →

О градиенте изображения

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

Аннотация


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

Алгоритмы выделения контуров изображений

Время на прочтение4 мин
Охват и читатели182K
В свете недавних статей об обработке изображений я хотел бы немного рассказать об алгоритмах выделения контуров: методы Робертса, Превитта и Собеля (эти методы взяты для рассмотрения как самые известные и часто используемые).

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

Детектирование округлостей на изображении средствами MATLAB

Время на прочтение3 мин
Охват и читатели31K
image
В этом топике я приведу альтернативный подход к задаче, решенной товарищем VasG тут. Как заметили в комментариях, задачу обнаружения округлостей на изображении можно было решить при помощи MATLAB Image Processing Toolbox, что я и сделал. MATLAB радует меня очень сильной документацией с большим количеством наглядных примеров; а также удобством m-языка, за счет которого сильно сокращается время реализации вычислительных решений. Конечно, есть и минусы — в частности алгоритмы работают медленно, — но для данной задачи это не существенно. Отмечу только, что из m-языка довольно просто можно получить C-код, который будет работать гораздо быстрее.
Читать дальше →

Детектирование округлостей на изображении (на примере микрофотографий)

Время на прочтение3 мин
Охват и читатели18K
Всем привет! По своей профессии (строго говоря- будущей профессии) я вообще-то химик. Относительно недавно появилась интересная работа и объявилась необходимость много работать с цифровым микроскопом, делать большое количество фотографий и определённым образом их обрабатывать. А именно: находить линейные размеры частиц (чаще круглой формы и изначально- на глаз) и скрупулёзно заносить их в лабораторный журнал.
Неудивительно, что после первой же сотни изображений я крепко задумался о хоть какой-нибудь автоматизации этого процесса, но была одна загвоздка: я прекрасно знал, что «объектно-ориентированное программирование — это очень хорошо», но… Но я на тот момент владел только школьным TurboPascal, университетским VB и быдлокодингом на PHP в процедурном варианте. Потыкавшись по форумам, и учтя факт, что за день я успеваю поработать как минимум на двух ОС (Mac/Windows/Ubuntu существуют в эйфорическом симбиозе), я особо не задумывался и решил писать на Java.
Опуская подробности примерно недельной, в свободное от работы время, долбёжки своей головы об объектно-ориентированную парадигму программирования и бессонных ночей с мыслями наподобие «да как же, блин, это работает», я постараюсь максимально вкратце рассказать о том простом и быстром «алгоритме», который у меня родился. Стоит сразу сказать, что он годится только для достаточно четких изображений.
А вот, кстати, и типичный представитель (вернее, его примерно десятая часть), которого нужно обработать:


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

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

Время на прочтение6 мин
Охват и читатели51K
Здравствуйте, уважаемые хабрачитатели и хабракритики. Этот пост я хотел бы посвятить такой актуальной на сегодняшний день теме, как обнаружение объектов на изображениях.
В качестве одного из алгоритмов такого обнаружения рассмотрим выбор порога быстрым и эффективным методом Оцу.
Читать дальше →

GIMP Script-fu: быстрое изучение и написание простых скриптов на Scheme (+ пакетная обработка бесплатно)

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

Вступление


В статье будет рассказано о том, как в кратчайшие сроки познакомиться с основами скриптинга в GIMP на языке Scheme и приступить непосредственно к решению простых практических задач. Данный материал предназначен лишь для тех, кто собирается автоматизировать рутинную обработку здесь и сейчас, не сильно вдаваясь в тонкости и не жертвуя драгоценным временем. Также, статью не рекомендуется использовать в качестве пособия по Scheme отдельно от Script-fu. Связано это с упрощённым стилем программирования в данном материале и отсутствием освещения других немаловажных фактов, которые нас сейчас волнуют гораздо меньше, чем скорость освоения.

Содержание:
  1. Что нам понадобится?
  2. Коротко о синтаксисе
  3. Переменные
  4. Функции
  5. Списки
  6. Регистрация скрипта в GIMP
  7. Написание кода
  8. Заключение
Читать дальше →

Классификация и выделение объектов на изображениях

Время на прочтение7 мин
Охват и читатели35K
Здрайствуйте!
В связи со сферой своей деятельности, собрался, на мой взгляд, очень ценный материал, которым хочу поделиться с вами. Думаю некоторым он будет крайне важен и полезен, возможно мои наработки сэкономят Вам время, в случае чего буду рад. И так ближе к делу. На Хабре уже есть хороший обзор алгоритмов кластеризации данных. Детально рассмотрена теория, но практических результатов нет, как обычно практика не так легка, как кажется. Поэтому хочу представить вашему сведению реальные результаты, проблемы и их решений возникшее при кластеризации (точней сказать сегментации, потому что объект кластеризации — статическое изображение). Под катом будет и сегментация, и цифровая обработка изображений. Прошу…

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

Декодирование JPEG для чайников

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

[FF D8]


Вам когда-нибудь хотелось узнать как устроен jpg-файл? Сейчас разберемся! Прогревайте ваш любимый компилятор и hex-редактор, будем декодировать это:


Jpeg file in hex editor


Специально взял рисунок поменьше. Это знакомый, но сильно пережатый favicon Гугла: Google favicon


Последующее описание упрощено, и приведенная информация не полная, но зато потом будет легко понять спецификацию.


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


[FF D8] — маркер начала. Он всегда находится в начале всех jpg-файлов.


Следом идут байты [FF FE]. Это маркер, означающий начало секции с комментарием. Следующие 2 байта [00 04] — длина секции (включая эти 2 байта). Значит в следующих двух [3A 29] — сам комментарий. Это коды символов ":" и ")", т.е. обычного смайлика. Вы можете увидеть его в первой строке правой части hex-редактора.

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

Конвертируем .bmp в .png, с помощью Python и PIL

Время на прочтение1 мин
Охват и читатели8.8K
В предыдущем посте я воспользовался стандартным «PrtSc», на Windows XP, сделав серию из скриншотов, обработав и сохранив их в обычном Paint'е — получилось около 3.5 Мб на каждую картинку.

Здесь хочу исправить получившееся недоразумение, средствами питона (по-прежнему, версии 2.6).

Вообще забавно, но после установки PIL проблема решается в две строчки кода.
import Image

Image.open('1.bmp').save('1.png')

Получилось порядка 27 Кб на картинку, против первых 3.5 Мб

Продолжение..

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

Use the Force, Luke! или Как увидеть стереограмму не напрягая глаз

Время на прочтение2 мин
Охват и читатели2.6K
Мне никогда не удавалось увидеть, что же прячется за пёстрыми узорами «магических картинок».
Сколько я ни напрягал глаза — ничего не получалось.
Сегодня вместо зрения я напряг мозг, и вот что вышло:


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

BSoD-портрет Стива Балмера

Время на прочтение1 мин
Охват и читатели896
Пожалуй, самый креативный способ использования зависших компьютеров придумал художник Фестер с сайта Poorly Drawn Portraits. Из сотен «синих экранов смерти» он составил вполне узнаваемый портрет Стива Балмера, президента компании Microsoft.


(кликабельно)
Получилось весьма символично, в духе “media is the message”.
Читать дальше →

FineReader Online

Время на прочтение1 мин
Охват и читатели7.6K
Неужели, чтобы распознать всего одну страничку нужно лезть на торренты идти в магазин и покупать целый FineReader? Правильный ответ – НЕТ, потому что теперь можно купить половинку FineReader’а недавно специально для таких случаев был запущен в открытое бета-тестирование новый онлайн-сервис от ABBYY!

Мы рады представить вам FineReader Online (beta). Теперь те, кому нужно просто распознать парочку страниц, могут зарегистрироваться на нашем сервисе и сделать это совершенно бесплатно. На данный момент после регистрации вам доступно 50 страниц в день.
Читать дальше →

Распознавание дорожных знаков (OpenCV)

Время на прочтение2 мин
Охват и читатели48K
Здраствуйте, решил поделиться своим опытом применения OpenCV (Intel) при решении практической задачи.

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

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

Делаем красивую флеш галерею в программе Picasa

Время на прочтение1 мин
Охват и читатели1K
image
Совсем недавно мне понадобилось составить подборочку из нескольких моих фотографий. Это должны были быть портреты. Недолго думая, я решил что нужно всё это реализовать это на флеш, т.к. это просто, карасиво, да и флеш-плеер я думаю уже почти у всех есть.

Первая мысль была скачать какую-нибудь галерею, куда можно привязать фликр или пикасу. Но вдруг я наткнулся на один хороший сайт. Там были выложены шаблоны галерей и их демонстрации. Скачав понравившийся шаблон я, к своему удивлению, не нашел никакого readme… Пришлось поискать на сайте. Оказалось что эти шаблоны нужно вставлять в программу пикаса… А потом в интерфейсе программы создавать готовую галерею.
Читать дальше →

Страшилка про Черный Фотошоп

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

«Однажды старый дизайнер принес домой черный пречерный компакт-диск и сказал сыну:
— Никогда не открывай этот диск, сынок, никогда.
Через три дня папа уехал на выставку глиняной игрушки под Кемерово. А сын один остался. Скучно ему стало, и нашел он черный пречерный компакт-диск и открыл его на черном пречерном компьютере…
Читать дальше →

Лучшие графические редакторы, написанные на Flash

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

Лучшие графические редакторы, написанные на Flash


Когда заходит речь о миграции с Windows на другие платформы или на веб-приложения, каждый раз возникает неоспоримый аргумент: но там же нет фотошопа! Этот легендарный графический пакет благодаря пиратам прижился, наверное, на подавляющем большинстве компьютеров в СНГ. И несомненно альтернативу столь сложной программе найти сложно. Но если откровенно, как в большинстве случаев используется вся мощь фотошопа? Изменить размеры, подкорректировать яркость, иногда убрать лишние детали, да отправить на е-мейл подружке.
Нужен ли для этого полноценный большой Photoshop? В большинстве случаев нет, если только вы не дизайнер-профессионал высокого класса. А значит, аналог найти будет уже проще.
Но искать аналог среди настольных программ или программ под Linux это неинтересно! Мы живем в век Web 2.0, поэтому попробуем поискать аналоги среди веб-приложений. Да, еще недавно это было бы фантастикой, но развитие графических возможностей прежде всего Flash уже сегодня позволяет получить весьма интересные результаты. Конечно, описываемые редакторы не станут полноценной заменой «старшему брату», но для небольших фотокоррекций они пригодятся. Или представьте себя в интернет-кафе, где привычного вам софта нет, а вам нужно срочно взять готовую картинку, что-то в ней поменять, отметить или подписать и отправить собеседнику. В этом случае вас тоже может спасти одна из рассматриваемых ниже программ.
Читать о 10 наиболее интересных представителях этого вида