войти зарегистрироваться

АлгоритмыОпределение доминирующих тонов на изображении [v 1.1]

После публикации прошлой статьи, я полностью забил на попытку выполнить алгоритм при помощи HSV или Lab координат. Забил на использовании библиотек цветов и вообще на сам скрипт забил.

Но что-то стало скучно и опять зачесались руки поработать с изображениями и одновременно захотелось исправить уже имеющийся алгоритм.
Скрипт: link

АлгоритмыКак я создавал синтаксический анализатор из песочницы

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

Песочница FATAL ERROR в детских сказках или алгоритм носа Пиноккио из песочницы

image
«Что будет если Пиноккио скажет „У меня сейчас увеличится нос“?» — эту фразу пару дней назад озвучил один мой знакомый. При этом мы находились в кругу наших товарищей и между нами сразу разразился спор. Кто-то говорил, что нос вырастет, кто-то, что нос останется прежним и ничего не произойдет, а кто-то вообще, что образуется черная материя и произойдет взрыв. Естественно последний вариант был шуткой и его ни кто не воспринял его в серьез. И так, мы разделились на две части. Первая половина приводила различные аргументы, которые может в чем-то и были верны, но тут же опровергались второй половиной. В начале я тоже участвовал в этой дискуссии, но потом понял, что этим спором мы ни чего не решим и решил рассмотреть этот вопрос с точки зрения программирования. В тот момент я находился не дома и поэтому вместо того, что бы сесть на компьютер, я взял листок бумаги и начал думать. Первое, что пришло в голову это то, что нужно всё-таки разобраться, а как же работает нос Пиноккио? Я взял ручку и начал посторочно выписывать действия, которые происходят с носом. Начиная первым и заканчивая последним пунктом.

Обработка изображенийДетектирование эллиптических частиц на микрофотографии. Новый алгоритм поиска эллипсов на изображении

Я всё продолжаю возиться со своими микрофотографиями. Наука не стоит на месте (с момента той статьи прошел без двух месяцев год!), и теперь нам нужно распознавать другие объекты:


Но тут уже безо всяких послаблений: точность должна быть достаточно высокой.
Конкретно эта задачка встала недавно (примерно в конце ноября), и решалась в свободное от учёбы и работы время.
Achtung! Статья получилась довольно крупная, много картинок. Зато без избыточной математики.

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

Обработка изображенийViola Jones на собственной шкуре, часть 1. Настройка проекта под OpenCV

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

АлгоритмыUpgrade Viola Jones

В моём предыдущем топике я старался показать, как метод Viola Jones работает, с помощью каких технологий и внутренних алгоритмов. В данном посте, дабы не прерывать цепочку, будет также много теории, будет показано за счет чего можно улучшить и до того прекрасный метод. Если здесь описать еще и программную реализацию, то будет огромное полотно, которое читать будет очень неудобно, и смотреться это никак не будет — решено разбить объем информации на два отдельных поста. Ниже — теория, мало картинок, но много полезного.

АлгоритмыМетод Виолы-Джонса (Viola-Jones) как основа для распознавания лиц

Хотя метод был разработан и представлен в 2001 году Полом Виолой и Майклом Джонсом [1, 2], он до сих пор на момент написания моего поста является основополагающим для поиска объектов на изображении в реальном времени [2]. По следам топика хабраюзера Indalo о данном методе, я попытался сам написать программу, которая распознает эмоцию на моём лице, но, к сожалению, не увидел на Хабре недостающей теории и описания работы некоторых алгоритмов, кроме указания их названий. Я решил собрать всё воедино, в одном месте. Сразу скажу, что свою программу успешно написал по данным алгоритмам. Как получилось рассказать о них ниже, решать Вам, уважаемые Хабрачитатели!

АлгоритмыОписание работы алгоритма Shift-OR для поиска подстроки в строке из песочницы

1. Вместо вступления.

Недавно пришлось разбираться в работе алгоритма Shift-Or, который позволяет найти подстроку в строке. По результатам этого разбора я и решил написать этот пост в надежде, что кому-то он поможет понять, как работает этот алгоритм, быстрее чем мне.

Собственно, главное отличие алгоритма от, например, «наивного сравнения», заключается в том, что в его основе лежит логические операции, а именно логическое умножение (оно же AND, оно же конъюнкция).

Game DevelopmentАвтоматизация игры во Flood-it

Добрый день.

После размещения вопроса о том интересно ли будет почитать об автоматизации процесса игры во Flood-it. Было получено несколько положительных отзывов, в связи с чем публикую данную статью.

Введение



Flood-it представляет собой игровое поле размером 14x14 с разноцветными клетками, задача игрока заполнить поле одним цветом за наименьшее количество ходов. Каждый ход представляет собой выбор цвета из палитры, всего в палитре шесть цветов. Всего на игру дается 25 ходов.

Игровое поле Flood-it
Рисунок 1: игровое поле.

Необходимо реализовать алгоритм, для выбора оптимального цвета для заливки. Подробности можно прочитать реализации под катом.

АлгоритмыХранения данных алгоритмом «Хранилище, структурированное журналом» из песочницы

Как правило, если вы разрабатываете системы хранения данных — таких, как файловая система или база данных — одна из основных проблем как хранить данные на диске. При разработке вы должны позаботиться о ряде задач. Например о выделении места для объектов, которые вы собираетесь хранить. А также об индексации данных, для того чтобы вам не приходилось беспокоиться о том, что происходит, когда вы хотите расширить существующий объект (например, при добавление данных в файл), и о фрагментации, которая происходит, когда старые объекты будут удалены, а новые займут их место. Все это приводит к множеству сложностей, и решению частых баггов или это посто получается неэффективно.