Восстановление изображений методом слепой деконволюции

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

Ключевые термины: Слепая деконволюция; восстановление изображений; функция протяженности точки PSF
Ключевые функции: deconvblind, edge, imdilate, imfilter

Содержание демонстрационного примера
Демонстрационный пример включает следующие шаги:

  • Шаг 1: Считывание изображения.
  • Шаг 2: Симуляция размытостей.
  • Шаг 3: Восстановление размытого изображения с использованием функции протяженности точки с различными параметрами.
  • Шаг 4: Повышение качества восстановления.

· Шаг 5: Использование дополнительных ограничений для функции протяженности точки при восстановлении изображений.

Шаг 1: Считывание изображения.На данном этапе приведем пример считывания яркостного полутонового изображения. I=imread('cameraman.tif');figure;imshow(I); title('Исходное изображение');

Шаг 2: Симуляция размытостей.
Проведем симулирование реалистических размытых изображений (например, в результате движения камеры или недостаточной фокусировки объектива). В этом примере симуляция размытостей на изображении достигается в результате свертки гауссовского фильтра с исходным изображением. Для этого можно использовать также функцию imfilter. Гауссовский фильтр представляется функцией протяженности точки PSF.

PSF=fspecial('gaussian', 7, 10);
Blurred=imfilter(I, PSF ,'symmetric', 'conv');
figure; imshow(Blurred);title('Размытое изображение');

Шаг 3: Восстановление размытого изображения с использованием функции протяженности точки с различными параметрами.
Для иллюстрации того, насколько важно иметь информацию о параметрах истинной функции протяженности точки, приведем три варианта восстановления.
В первом варианте восстановления (J1 и P1) используется малоразмерный массив UNDERPSF. Иными словами, предполагается, что функция протяженности точки является именно такой. Размер массива UNDERPSF является на 4 пикселя меньше по каждой размерности относительно размеров истинной функции протяженности точки.

UNDERPSF=ones(size(PSF)-4);
[J1 P1]=deconvblind(Blurred, UNDERPSF);
figure; imshow(J1); title('Восстановление с малоразмерной PSF');

Во втором варианте восстановления (J2 и P2) используется массив единиц OVERPSF, размерность которого по обоим направлениям на 4 пикселя больше истинной размерности функции протяженности точки PSF.

OVERPSF=padarray(UNDERPSF, [4 4], 'replicate', 'both');
[J2 P2]=deconvblind(Blurred, OVERPSF);
figure;imshow(J2); title('Восстановление с большими размерами PSF');

В третьем варианте восстановления (J3 и P3) используется массив единиц INITPSF, размерность которого аналогична размерности истинной PSF.

INITPSF=padarray(UNDERPSF, [2 2], 'replicate', 'both');
[J3 P3]=deconvblind(Blurred, INITPSF);
figure; imshow(J3); title('Восстановление с INITPSF');