Восстановление изображений методом слепой деконволюции
Наиболее целесообразно использовать метод слепой деконволюции тогда, когда исследователь не располагает информацией об имеющихся искажениях (размытие и шум). Алгоритм восстанавливает одновременно изображение и функцию протяженности точки (PSF). Дополнительные характеристики оптической системы (например, камеры) могут быть использованы в качестве исходных параметров, что приведет к улучшению восстановления изображений. Вид функции протяженности точки PSF задается пользователем перед выполнением операции восстановления.
Ключевые термины: | Слепая деконволюция; восстановление изображений; функция протяженности точки PSF |
Ключевые функции: | deconvblind, edge, imdilate, imfilter |
Содержание демонстрационного примера
Демонстрационный пример включает следующие шаги:
- Шаг 1: Считывание изображения.
- Шаг 2: Симуляция размытостей.
- Шаг 3: Восстановление размытого изображения с использованием функции протяженности точки с различными параметрами.
- Шаг 4: Повышение качества восстановления.
· Шаг 5: Использование дополнительных ограничений для функции протяженности точки при восстановлении изображений.
Шаг 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');