Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет_лаба7.docx
Скачиваний:
0
Добавлен:
25.04.2024
Размер:
30.62 Mб
Скачать

Восстановление изображения-1

Следующим этапом при выполнении лабораторной работы необходимо попробовать восстановить смазанное изображение при помощи двух методов восстановления: метода Тихонова и метода Винера.

Сперва попробуем восстановить резкость картинки при помощи метода А.Н. Тихонова. Поскольку на Python не удалось ни найти аналога данной функции, ни переписать исходный код функции, то пришлось выполнить данную операцию при помощи MATLAB. В таблице 3 представлен список используемых переменных, а в листинге 3 – программный код разработанной функции.

Таблица 3. Список используемых переменных.

Название

Тип

Описание

Deconvolution

Функция

Функция выбора метода восстановления

img

Двумерный массив

Исходное замыленное изображение

PSF

Двумерный массив

Маска искажения изображения

Noise_level

Дробное число

Уровень шума

method

Стоковый тип

Метод восстановления изображения

J

Двумерный массив

Восстановленное изображение

Листинг 3. Функция восстановления резкости методом Тихонова

% Функция восстановления резкости изображения

function J = deconvolution(img, PSF, noise_level, method)

img = edgetaper(img, PSF);

switch method

case "Tihonov"

J = deconvreg(img, PSF, [], noise_level);

case "Wiener"

J = deconvwnr(img, PSF, noise_level);

end

end

noise_power = 0.01;

unblured_city = deconvolution(blured_city, PSF, noise_power, 'Tihonov');

Далее необходимо восстановить замыленное изображение и оценить результаты. На рисунке 8 показана восстановленная картинка с её спектром, а на рисунке 9 – сравнение результата восстановления четкости.

Рисунок 8 – Восстановление четкости методом Тихонова (noise_level = 0.01)

Рисунок 9 – Оценивание результата восстановления четкости

Из рисунка 9 видно, что четкость у восстановленной картинки значительно выше, чем была у смазанной, однако при детальном анализе данных картинок видно, что у восстановленной возникают «волнообразные» шумы – звоны – вызываемые дискретным преобразованием Фурье. Пример таких шумов представлен на рисунке 10.

Рисунок 10 – Получаемые шумы после восстановления резкости

Если же обратиться к официальной документации к исходной функции [4], то разработчики советуют использовать функцию edgetaper перед восстановлением. Данная функция размывает края исходного изображения, используя функцию распределения точек созданной маски. Однако, даже после применения данной функции звенящие шумы по-прежнему остаются.

Далее попробуем восстановить резкость изображения методом Н. Винера. На языке Python удалось лишь найти аналог, работающий с черно-белыми картинками. С цветными работает лишь MATLAB, поэтому восстановим резкость в данной среде. Листинг разработанной функции был представлен ранее в листинге 3, поэтому необходимо лишь предоставить результаты выполнения данной функции. На рисунке 11 представлена восстановленная картинка с её спектром, а на рисунке 12 – сравнение резкости между смазанной и восстановленной картинками.

Рисунок 11 – Восстановление четкости методом Винера (noise_level = 0.01)

Рисунок 12 – Оценивание результата восстановления

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

Соседние файлы в предмете Мультимедиа технологии