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

Задание №2. Шумоподавление для изображений

Начало: 1 апреля 2006 года.
Конец: 16 апреля 2006 года (23:59)

Автор задания:
Алексей Лукин (lukin@ixbt.com)

Цель задания

Освоить программирование стандартных операций цифровой обработки сигналов: линейной фильтрации, медианной фильтрации. Научиться подавлять шум в изображениях с помощью методов K nearest neighbors и Non-local means.

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

Требуется написать Windows-программу для отображения и обработки BMP-изображений. Различные обработки желательно реализовать в виде отдельных пунктов меню.

Все обработки должны работать с цветными изображениями (если не указано обратное).

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

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

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

  • Загрузка и отображение BMP-файла. Достаточно сделать поддержку только формата RGB-24 для BMP-файлов.
  • Преобразование изображения (см. далее), отображение на экране результата и сохранение в BMP-файл (достаточно поддержки RGB-формата).
  • Добавление к изображению белого шума с задаваемой пользователем амплитудой и треугольным (или гауссовским) распределением вероятностей. Добавление к изображению импульсного шума с задаваемой пользователем вероятностью искажения каждого пикселя. 1 балл
  • Применение к изображению фильтров: повышение четкости, размытие, нахождение границ. Обратить внимение на недопустимость "заворачивания" цветов при переполнении разрядности.  2 балла
  • Гауссовское размытие с произвольным задаваемым пользователем радиусом размытия. Реализовать отдельными пунктами одномерный и двумерный варианты размытия. 2 балла
  • Медианная фильтрация с произвольным задаваемым пользователем радиусом фильтра. Достаточно сделать фильтрацию для черно-белых изображений. 2 балла

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

  • Медианная фильтрация цветных изображений с использованием упорядочения по яркости цвета.  +1 балл
  • Медианная фильтрация цветных изображений с использованием векторной медианы (векторная медиана - такой элемент множества, для которого минимальна сумма L1-расстояний до остальных элементов).  +2 балла
  • Шумоподавление по методу K nearest neighbors. Пользователь может задавать радиус окна и уровень шума.  +3 балла.
  • Шумоподавление по методу Non-local means. Пользователь может задавать радиус окна поиска похожих блоков и уровень шума. Размер блока можно фиксировать 8x8 пикселей, а можно сделать переменным. Размер обрабатываемого "пикселя" можно варьировать от 1 пикселя до целого блока 8x8.   до +6 баллов.
  • Автоматическая оценка уровня шума на изображении в методах шумоподавления (при этом у пользователя должна остаться возможность и ручного задания уровня шума).  +2 балла

Материалы

  1. Допускается использование стандартных процедур чтения/записи BMP-файлов и сортировки массивов при условии понимания их принципа работы. Формат BMP-файла рассматривается здесь.
  2. Файлы с примерами исходного изображения без шума, зашумленного изображения, результата модифицированного метода K-NN и результата модифицированного метода NL-means.
  3. Статья Buades/Morel "A non-local algorithm for image denoising" с описанием методов K-NN (раздел "The neighborhood filtering") и Non-local means (раздел "NL-means algorithm").
  4. Быстрая процедура вычисления L1-разницы ("sum of absolute differences") двух блоков изображения 8x8 пикселей (одна цветовая компонента).
  5. Лекция 4 "Цвет, квантование, фильтрация, шумоподавление".
  6. Доп. литература по обработке сигналов: Методичка

Оформление

См. Информацию о курсе и FAQ.

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

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

Результаты смотрите в интернете или на стенде около лаборатории. Все вопросы присылать авторам и проверяющим.

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

ЧаВо по заданию

Вопросы можно задавать в форуме (http://forum.graphicon.ru), на лекции или присылать автору по почте. ЧаВо по заданию будет сделано на страничке автора.

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