Введение в компьютерную графику
Полугодовой курс ВМиК МГУ, 2002
     

Задание №3. Анализ изображений.

Начало: 15 марта
Конец: 31 марта

Авторы задания:
Владимир Вежневец
Евгений Лисицын

Цель задания

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

Описание задания

Введение

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

Обязательная часть

  1. Загрузка BMP-файлов для обработки (достаточно ограничиться поддержкой 24-битного формата).
  2. Определение количества и положения предметов основных типов на изображении с незначительным шумом на однородном фоне. Предметы основных типов представляют собой четырехсвязные области. Сделать нужно следующее:

    • Найти и пометить кусочки сахара
    • Найти и пометить ложки
    • Особо отметить ложки, расположенные вертикально

    Обязательно должно быть выполнено:

    • Выделение связных областей;
    • Вычисление характеристик областей;
    • Классификация предметов на изображении по вычисленным характеристикам (классификация должна быть универсальной - то есть работать правильно на всех изображениях);

Дополнительная часть

  • Определение количества предметов основных типов на изображении с шумом, посторонними предметами. Предметы основных типов представляют собой четырехсвязные области.
    Важное замечание:
    Не нужно пытаться во что бы ты ни стало найти универсальную последовательность применения фильтров для устранения шума и дефектов на всех изображениях (хотя это и приветствуется). Можно найти свою последовательность и параметры применения фильтров для каждого случая. В таком случае в программе должна быть возможность одним нажатием клавиши (или выбором одного пункта меню) запустить последовательность обработки для каждого конкретного изображения.
  • Реализация медианной фильтрации
  • Быстрая медианная фильтрация (реализация с применением некой оптимизации)
  • Реализация морфологических операций (сужение, расширение, открытие, закрытие - всех четырех)
  • Быстрая разметка связных компонент (реализация алгоритма последовательного сканирования)

Источники информации

Схема работы программы приблизительно следующая:

  1. Перевод цветного изображения в черно-белое;
  2. Пороговая бинаризация изображения;
  3. Обработка изображения с целью устранения шума (где это требуется) c помощью операций математической морфологии, пространственной фильтрации;
  4. Выделение четырехсвязных областей. Алгоритм: рекурсивный либо построчный;
  5. Определение свойств объектов: площадь, периметр, компактность, вытянутость и статистических моментов;
  6. На основе свойств объектов делается вывод о принадлежности объекта тому или иному типу. Какими именно свойствами вы будете пользоваться для классификации не важно, лишь бы результат был устойчивым;
  7. Пометить (различными способами) кусочки сахара, ложки и отдельно ложки, расположенные вертикально.
Все необходимые алгоритмы и методы давались на лекциях по машинной графике.

Изображения для обработки:

Изображения даются в формате jpeg. Перевести их в bmp можно с помоью практически любого графического редактора.

Требования к программе

Обязательные требования

Обязательное требование - выполнить обязательную часть задания.

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

К программе должны прилагаться все необходимые для ее запуска библиотеки (опускать можно только слишком большие библиотеки, если они явлются стандартными). Отсутствие библиотек создает неудобства при проверке, однако не фатально. У нас есть набор из наиболее часто недостающих библиотек для Borland C++ Builder и MS Visual C++.

Дополнительные требования

Очень приветствуется удобный интерфейс на правильном английском или русском языке.
Для длинных (дольше 5 сек) преобразований желательно отображать индикатор прогресса.

Оценка

  • Обязательная часть задания 8 баллов
  • Реализация медианной фильтрации +2 балла
  • Быстрая медианная фильтрация (реализация с применением некой оптимизации) +2 балла
  • Реализация морфологических операций (сужение, расширение, открытие, закрытие) +2 балла
  • Быстрая разметка связных компонент (реализация алгоритма последовательного сканирования) +3 балла
  • Скорость работы (до +2 баллов)
  • Удобство интерфейса (до +2 баллов)
  • Удобочитаемый, хорошо комментированный код (до +2 баллов)

Оформление

ZIP-архив с исходными текстами и исполняемыми файлами, названный по схеме NMaaa_b.zip (где N-номер задания, M - номер группы, aaa - три первые латинские буквы фамилии, b - первая латинская буква имени) присылайте на assign3@graphics.cs.msu.su

Также смотрите здесь, какие файлы нам присылать и как их оформить Советуем прочитать FAQ

Если вы реализовали какой-либо оригинальный метод, опишите его в README-файле.

Внимание: обратите внимание на правильное именование и структуру архива с работой, а также на содержание файла readme.txt. Если ваша работа не будет соответствовать требованиям, баллы могут быть снижены.

Результаты работы

Результаты смотрите в интернете или на стенде около комнаты 703.

Все вопросы присылать автору.

Примечания

Задание выполняется строго индивидуально. За совместную работу или обмен кусками кода ставится ноль баллов всем участникам, если факт командной работы не был указан в readme.txt заданий.

Очень сильно рекомендуется написание программы под Windows. Написание под другие операционные системы крайне нежелательно, т.к. в этом случае мы не сможем самостоятельно проверить задание.

Главная | О курсе | Лекции | Библиотека | Задания | Оценки | FAQs
  (с) Лаборатория компьютерной графики, 1997-2002
Дизайн: Алексей Игнатенко