Шаг 4: Повышение качества восстановления

Искажения в восстановленном изображении J3 наиболее заметны в областях с высоким контрастом и вдоль границ объектов изображения. Рассмотрим методы понижения этих искажений с использованием так называемых взвешенных функций. В процессе восстановления изображения и функции протяженности точки PSF алгоритм присваивает каждому пикселю некоторый вес в соответствии с массивом WEIGHT. В нашем примере обработка начинается с обнаружения "высококонтрастных" пикселей с использованием функции края edge. Методом проб и ошибок определяется нужный порог. В нашем случае он равен 0.3.

WEIGHT=edge(I, 'sobel', .3);

Для расширения области используется функция imdilate и дискообразные структурные элементы. se=strel('disk', 2);

WEIGHT=1-double(imdilate(WEIGHT, se));

Далее применяются морфологические операции закрытия пикселей на краях и присвоение им значения 0.

WEIGHT([1:3 end-[0:2]], :)=0;
WEIGHT(:, [1:3 end-[0:2]])=0;
figure; imshow(WEIGHT);title('Массив весов');

Теперь при проведении операции восстановления изображения будет применяться функция deconvblind вместе с массивом весов WEIGHT, что приведет к увеличению числа итераций (до 30). Таким образом подавляются почти все искажения, которые были на восстановленном изображении.

[J P]=deconvblind(Blurred, INITPSF, 30, [], WEIGHT);
figure; imshow(J); title('Восстановленное изображение');