Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Краткий курс теории обработки изображений.doc
Скачиваний:
34
Добавлен:
01.07.2025
Размер:
8 Мб
Скачать
☆

Восстановление изображений с использованием метода Лаки-Ричардсона

Рассмотрим алгоритм Лаки-Ричардсона, который предназначен для восстановления размытых изображений. Наиболее эффективно этот алгоритм применять для обработки искаженных данных, для которых известна функция протяженности точки (point-spread function PSF) или так называемый оператор размытия, а также имеется некоторая информация о происхождении и характере шума. Размытое и зашумленное изображение восстанавливается итерационным способом.

Ключевые термины:

Деконволюция, восстановление изображения, функция протяженности точки, алгоритм Лаки-Ричардсона

Ключевые функции

deconvlucy, edgetaper, imfilter, imnoise

Основные шаги демонстрационного примера:

  • Шаг 1: Считывание изображения.

  • Шаг 2: Симуляция размытостей и шума.

  • Шаг 3: Восстановление размытого и зашумленного изображения.

  • Шаг 4: Интерактивный анализ восстановления.

  • Шаг 5: Обработка шумовой составляющей.

  • Шаг 6: Создание модели изображения.

  • Шаг 7: Симуляция размытостей.

  • Шаг 8: Моделирование взвешенного массива (массив WEIGHT).

  • Шаг 9: Моделирование функции протяженности точки PSF.

Шаг 1: Считывание изображения.

Для рассмотрения дальнейших примеров считаем некоторое RGB-изображение и вырежем из него часть с размерами 256 256 3.

I=imread('board.tif');

I=I(50+[1:256], 2+[1:256], :);

figure; imshow(I); title('Исходное изображение');

Шаг 2: Симуляция размытостей и шума.

Симулируем реалистическое изображение, содержащее размытости (например, в результате движения или плохой фокусировки камеры) и шум (например, случайные выбросы). Размытость можно симулировать с помощью свертки гауссовского фильтра с изображением (можно использовать функцию imfilter). Гауссовский фильтр представляется функцией протяженности точки (PSF).

PSF=fspecial('gaussian', 5, 5);

Blurred=imfilter(I, PSF, 'symmetric', 'conv');

figure; imshow(Blurred); title('Размытое изображение');

Для симуляции зашумленного изображения к размытому изображению добавляем гауссовский шум с отклонением V. Для этого можно использовать функцию (imnoise). Далее значение отклонения V будет использовано в качестве параметра затухания.

V=.002;

BlurredNoisy=imnoise(Blurred, 'gaussian', 0, V);

figure; imshow(BlurredNoisy); title('Размытое и зашумленное изображение');

Шаг 3: Восстановление размытого и зашумленного изображения.

Проведем восстановление размытого и зашумленного изображения с использованием функции протяженности точки (PSF) и 5 итераций (по умолчанию 10). Результирующий массив имеет тот же формат представления данных, что и исходный.

luc1=deconvlucy(BlurredNoisy, PSF, 5);

figure; imshow(luc1); title('Восстановленное изображение, NUMIT=5');

Шаг 4: Интерактивный анализ восстановления.

Результирующее изображение меняется с каждой итерацией. Для исследования процесса восстановления изображений можно реализовать функцию deconvolution в пошаговом режиме, т.е. анализировать результат на каждой итерации.

luc1_cell=deconvlucy({BlurredNoisy}, PSF, 5);

В этом случае luc1_cell представляет собой некоторый массив. Результирующий массив содержит четыре числовых массива, первый из которых представляет размытое изображение, второй - то же изображение в формате double, третий - результат предпоследней операции и четвертый - некоторые параметры обработки.

Таким образом, в последующей итерации используются результаты предварительной с применением функции deconvlucy. По умолчанию реализуется 10 итераций (NUMIT=10). Рассмотрим пример с использованием 15 итераций.

luc2_cell=deconvlucy(luc1_cell, PSF);

luc2=im2uint8(luc2_cell{2});

figure; imshow(luc2); title('Восстановленное изображение, NUMIT=15');