Задание №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 балла
Материалы
- Допускается использование стандартных
процедур чтения/записи BMP-файлов и сортировки
массивов при условии понимания их принципа
работы. Формат BMP-файла рассматривается здесь.
- Файлы с примерами исходного
изображения без шума, зашумленного
изображения, результата
модифицированного метода K-NN и результата
модифицированного метода NL-means.
- Статья Buades/Morel
"A non-local algorithm for image denoising" с описанием
методов K-NN (раздел "The neighborhood filtering") и Non-local
means (раздел "NL-means algorithm").
- Быстрая процедура
вычисления L1-разницы ("sum of absolute differences") двух
блоков изображения 8x8 пикселей (одна цветовая
компонента).
- Лекция 4 "Цвет, квантование, фильтрация, шумоподавление".
- Доп. литература по обработке сигналов: Методичка
Оформление
См. Информацию о курсе и FAQ.
Не забудьте положить в архив файл readme.txt.
Укажите в нем перечень выполненных подзаданий.
Если вы реализовали какой-либо оригинальный
метод, опишите его в комментариях.
Результаты работы
Результаты смотрите в интернете или на стенде
около лаборатории. Все вопросы присылать авторам
и проверяющим.
Задание выполняется строго индивидуально. За
совместную работу или обмен кусками кода
ставится ноль баллов всем участникам, если факт
командной работы не был указан в readme.txt заданий.
ЧаВо по заданию
Вопросы можно задавать в форуме (http://forum.graphicon.ru), на лекции или
присылать автору по почте. ЧаВо по заданию будет сделано на страничке
автора.
|