Написать программу по обработке и анализу изображений 1 500 руб

Все проекты
Прошло времени:   10 лет 3 месяца 3 недели 4 дня 3 часа 36 минут
Поиск клада
Антон Конушин, Тимур Ибадов.
1 Обзор задания
В задании нужно будет применить знания по обработке и анализу
изображений для поиска пути от начальной точки, обозначенной крас-
ной стрелкой, до «клада». Для успешного выполнения задания требуется
реализовать несколько методов для обработки изображений, а также су-
меть воспользоваться этими методами для успешного решения задачи
распознавания.
На изображениях для обработки находятся 3 типа объектов интереса:
 Белые стрелки, указывающие путь.
 Начальная стрелка (всегда красного цвета).
 «Клад» — некоторый объект на который указывает последняя в
пути стрелка.
Рис. 1: Исходное изображение (слева) и результат работы (справа).
2 Базовая часть задания
Требуется реализовать следующий алгоритм:
1. Загрузить изображение в формате BMP (можно использовать биб-
лиотеку EasyBMP).
12. Преобразовать изображения в бинарное с помощью любого из рас-
сказанных на лекции алгоритмов.
3. Выделить связные области любым из алгоритмов, рассказаных на
лекции.
4. Найденные области разделить на стрелки и все остальное (среди
этого класса будет «клад»). Для этого стоит использовать различ-
ные признаки: цвет, характеристики связных областей (площадь,
длина периметра, эксцентриситет и т.д.), любые другие признаки,
которые придумаете.
5. Среди стрелок найти начальную (она всегда будет красной).
6. Определить направление, куда она указывает. Например, можно
подсчитать центр масс и главную ось инерции. Это дает направ-
ление и точку начала пути. Для того, чтобы определить в какую
сторону от центра масс двигаться, можно воспользоваться зеле-
ным пятном на стрелке, посчитав по какую сторону от центра масс
вдоль направления оси инерции лежит большее число пикселей с
зеленой компонентой, доминирующей над остальными.
7. По этому направлению двигаться по изображению, пока не встре-
тится следующая стрелка.
8. Повторять шаги 6, 7 пока не получится, что последняя стрелка
указывает не на следующую стрелку, а на другой объект («клад»).
9. На исходном изображении нарисовать вокруг «клада» ограничива-
ющий прямоугольник минимального размера.
10. Для каждой стрелки пути соединить ее центр с центром объекта,
на который она указывает (отрезком на исходном изображении).
11. Сохранить полученное изображение.
Полученный алгоритм должен корректно работать на всех примерах
из папки «simple». За выполнение базовой части можно получить 15
баллов, для этого она должна быть реализована полностью. Баллы за
бонусную часть не начисляются, если не была выполнена базовая часть.
23 Дополнительная часть задания
В архиве с примерами есть пять изображений в папке «complex». За
каждое изображение, которое будет корректно обработано, Вы получи-
те +1 балл. Алгоритм должен обрабатывать все изображения с одина-
ковыми параметрами: запрещается выбирать параметры вручную для
каждого примера (но эти параметры могут автоматически оцениваться
алгоритмом, например, в зависимости от зашумленности изображения).
Для улучшения результата могут быть использованы следующие мето-
ды:
 Фильтрация шума (медианная фильтрация, фильтр Гаусса).
 Операции математической морфологии (сужение, расширение, за-
крытие, открытие).
 Автоматическая коррекция контрастности/цветности («серый мир»,
растяжение диапазона).
 Выделение краев для нахождения объектов.
 Любой другой метод, который поможет улучшить результат.
4 Интерфейс программы
Программа должна иметь консольный интерфейс и принимать в ка-
честве аргументов два параметра: имя файла с исходным изображением
и имя файла, в который нужно будет сохранить результат. Пример:
find_treasure in.bmp out.bmp
5 Требования к реализации задания
Для выполнения задания можете использовать любую операционную
систему и любую среду разработки. Язык реализации - C/C++. Будьте
готовы показывать программу на своей машине, если у проверяющего
возникнут сложности с запуском Вашей работы.
Вы можете переделать шаблон для первого задания, это может упро-
стить выполнение некоторых частей алгоритма. Запрещается использо-
вать сторонние библиотеки, кроме упомянутых выше и тех, что содер-
жатся в шаблоне для первого задания.
    Видеть контакты заказчика и оставлять свои предложения по проекту могут только зарегистрированные и авторизованные пользователи.
    Зарегистрируйтесь или войдите на сайт под своим именем.

    Фриланс-биржа Web-lance.net предлагает огромные возможности по поиску работы как опытным специалистам в сфере интернет-бизнеса, так и новичкам, только постигающим основы заработка во всемирной сети. Здесь вы найдете сотни интересных вакансий в сфере дизайна, копирайтинга, программирования, верстки, контент-менеджмента и других сфер деятельности востребованных среди интернет-пользователей. Также, зарегистрировавшись на бирже, вы сможете разместить здесь свою анкету, указав в ней свою специализацию и контактные данные, что даст возможность потенциальным клиентам, связаться с вами для дальнейшего взаимовыгодного сотрудничества. Сайт удобно структурирован и разбит на тематические разделы, что позволяет даже неопытным заказчикам точно определять категорию, в которую стоит публиковать их проект, в тоже время, упрощая исполнителям поиск интересующих их вакансий. Кроме того на портале имеется раздел Блоги где зарегистрированные пользователи могут публиковать материалы, а также Форум на котором исполнители и заказчики смогут обсудить рабочие моменты, а также пообщаться на интересующие их темы. Приятной вам работы на Web-lance.net - бирже, где вы сможете найти лучших исполнителей и самые интересные проекты.

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