Алгоритмы → Определение доминирующих тонов на изображении [v 1.1]
После публикации прошлой статьи, я полностью забил на попытку выполнить алгоритм при помощи HSV или Lab координат. Забил на использовании библиотек цветов и вообще на сам скрипт забил.
Но что-то стало скучно и опять зачесались руки поработать с изображениями и одновременно захотелось исправить уже имеющийся алгоритм.
Скрипт: link

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

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

«Что будет если Пиноккио скажет „У меня сейчас увеличится нос“?» — эту фразу пару дней назад озвучил один мой знакомый. При этом мы находились в кругу наших товарищей и между нами сразу разразился спор. Кто-то говорил, что нос вырастет, кто-то, что нос останется прежним и ничего не произойдет, а кто-то вообще, что образуется черная материя и произойдет взрыв. Естественно последний вариант был шуткой и его ни кто не воспринял его в серьез. И так, мы разделились на две части. Первая половина приводила различные аргументы, которые может в чем-то и были верны, но тут же опровергались второй половиной. В начале я тоже участвовал в этой дискуссии, но потом понял, что этим спором мы ни чего не решим и решил рассмотреть этот вопрос с точки зрения программирования. В тот момент я находился не дома и поэтому вместо того, что бы сесть на компьютер, я взял листок бумаги и начал думать. Первое, что пришло в голову это то, что нужно всё-таки разобраться, а как же работает нос Пиноккио? Я взял ручку и начал посторочно выписывать действия, которые происходят с носом. Начиная первым и заканчивая последним пунктом.
Обработка изображений → Детектирование эллиптических частиц на микрофотографии. Новый алгоритм поиска эллипсов на изображении
Я всё продолжаю возиться со своими микрофотографиями. Наука не стоит на месте (с момента той статьи прошел без двух месяцев год!), и теперь нам нужно распознавать другие объекты:
Но тут уже безо всяких послаблений: точность должна быть достаточно высокой.
Конкретно эта задачка встала недавно (примерно в конце ноября), и решалась в свободное от учёбы и работы время.
Achtung! Статья получилась довольно крупная, много картинок. Зато без избыточной математики.
Сформулируем задачу: получить параметры, полностью характеризующие контур фигуры, изображенной на картинке.
Но тут уже безо всяких послаблений: точность должна быть достаточно высокой.
Конкретно эта задачка встала недавно (примерно в конце ноября), и решалась в свободное от учёбы и работы время.
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 ходов.

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

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