Курсы лаборатории компьютерной графики
Обязательный полугодовой курс ВМиК МГУ
     

Приблизительный алгоритм обработки изображения класса "simple"

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

На рисунках проиллюстрированы шаги алгоритма:

Исходная картинка 1 2, 3
4, 5, 6 7, 8, 9

Важные вопросы

Как определить направление, куда указывает стрелка?

У связной области (стрелки) нужно подсчитать центр масс и главную ось инерции. Это дает направление и точку начала пути. Для того, чтобы определить в какую сторону от центра масс двигаться, можно воспользоваться зеленым пятном на стрелке, посчитав по какую сторону от центра масс вдоль направления оси инерции лежит большее число пикселей с зеленой компонентой, доминирующей над остальными.

Как проследить по направлению стрелки до следующей стрелки?

Начиная от центра масс текущей стрелки, двигаться по пикселям в вычисленном направлении с помощью алгоритма Брезенхема описание 1, описание 2 (весьма простой алгоритм растеризации прямых).

Как только наткнетесь на пиксель, принадлежащий связной области отличной от той, из которой начинали - это либо следующая стрелка, либо клад.

Назад к заданию
Your comments and questions (перед отсылкой уберите пробелы): vvp @ graphicon . ru
Главная | О курсе | Лекции | Библиотека | Задания | Оценки | FAQs
  (с) Лаборатория компьютерной графики, 1997-2004
Дизайн: Алексей Игнатенко