Задание 1: Основы работы с изображениями

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

Программа должна уметь:

  • Открывать и сохранять изображения в формате BMP или в семействе форматом PBM/PGM/PPM
  • Инвертировать значения пикселей изображения
  • Производить отражение изображения по вертикали и по горизонтали
  • Осуществлять поворот изображений по и против часовой стрелки на 90, 180 и 270 градусов

Выполнение обязательной части задания оценивается в 5 баллов.

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

За реализацию отдельных алгоритмов обработки изображений начисляются дополнительные баллы:

  • Фильтр Превитта по горизонтали и по вертикали (1 балл)
  • Фильтр Собеля по горизонтали и по вертикали (1 балл)
  • Фильтр Робертса по обеим диагоналям (1 балл)
  • Медианный фильтр с окном 3х3 (1 балл), либо с окном произвольного размера (2 балла)
  • Свёртка с фильтром Гаусса с произвольным выбором параметра — радиуса σ (3 балла)
  • Выделение границ с помощью вычисления модуля градиента изображения как корень из суммы квадратов свёрток с первой производной фильтра Гаусса по горизонтали и вертикали (3 балла)
  • Поворот изображения на произвольный угол (2 балла) с использованием билинейной интерполяции (+2 балла). За реализацию поворота с сохранением всего изображения (см. пример ниже) даётся дополнительно 1 балл.

Для фильтров Превитта, Собеля, Робертса пользователь должен иметь возможность выбора направления.

Справочные материалы