deconvreg

Изображение Deblur с помощью упорядоченного фильтра

Описание

пример

J = deconvreg(I,psf) разворачивает отображают I использование упорядоченного алгоритма фильтра, возврат deblurred отображают J. Предположение то, что изображение I был создан путем свертки к истинному изображению с функцией рассеяния точки (PSF), psf, и возможно путем добавления шума. Алгоритм является ограниченным оптимумом в смысле ошибки наименьшего квадрата между предполагаемым и истинными изображениями под требованием сохранения гладкости изображений.

J = deconvreg(I,psf,np) задает аддитивную шумовую мощность, np.

J = deconvreg(I,psf,np,lrange) указывает диапазон, lrange, где поиск оптимального решения выполняется. Алгоритм находит оптимальный множитель Лагранжа lagra в lrange область значений.

J = deconvreg(I,psf,np,lrange,regop) ограничивает развертку с помощью оператора регуляризации regop. Оператор регуляризации по умолчанию является Лапласовым оператором, чтобы сохранить гладкость изображений.

[J,lagra] = deconvreg(___) выводит значение множителя Лагранжа, lagra в дополнение к восстановленному изображению, J.

Примеры

свернуть все

Создайте демонстрационное изображение.

I = checkerboard(8);

Создайте PSF и используйте его, чтобы создать размытую и шумную версию входного изображения.

PSF = fspecial('gaussian',7,10);
V = .01;
BlurredNoisy = imnoise(imfilter(I,PSF),'gaussian',0,V);
NOISEPOWER = V*prod(size(I));

Deblur изображение.

[J LAGRA] = deconvreg(BlurredNoisy,PSF,NOISEPOWER);

Отобразите различные версии изображения.

subplot(221); imshow(BlurredNoisy);
title('A = Blurred and Noisy');
subplot(222); imshow(J);
title('[J LAGRA] = deconvreg(A,PSF,NP)');
subplot(223); imshow(deconvreg(BlurredNoisy,PSF,[],LAGRA/10));
title('deconvreg(A,PSF,[],0.1*LAGRA)');
subplot(224); imshow(deconvreg(BlurredNoisy,PSF,[],LAGRA*10));
title('deconvreg(A,PSF,[],10*LAGRA)');

Figure contains 4 axes objects. Axes object 1 with title A = Blurred and Noisy contains an object of type image. Axes object 2 with title [J LAGRA] = deconvreg(A,PSF,NP) contains an object of type image. Axes object 3 with title deconvreg(A,PSF,[],0.1*LAGRA) contains an object of type image. Axes object 4 with title deconvreg(A,PSF,[],10*LAGRA) contains an object of type image.

Входные параметры

свернуть все

Размытое изображение в виде числового массива любой размерности.

Типы данных: single | double | int16 | uint8 | uint16

PSF в виде числового массива.

Типы данных: double

Шумовая мощность в виде числового скаляра.

Типы данных: double

Поисковая область значений в виде числового скаляра или числового вектора с 2 элементами. Если lrange скаляр, затем алгоритм принимает тот lagra равно lrange. Если вы задаете lagra, затем функция игнорирует np значение

Типы данных: double

Оператор регуляризации в виде числового массива. regop измерения массива не должны превышать размерности изображения, I. Любые неодноэлементные размерности должны соответствовать неодноэлементным размерностям psf.

Типы данных: double

Выходные аргументы

свернуть все

Изображение Deblurred, возвращенное как числовой массив. J имеет совпадающий тип данных как I.

Множитель Лагранжа, возвращенный в виде числа.

Советы

  • Выходное изображение J мог показать вызов, введенный дискретным преобразованием Фурье, используемым в алгоритме. Чтобы уменьшать вызов, используйте I = edgetaper(I,psf) прежде, чем вызвать deconvreg.

Ссылки

[1] Гонсалес, R. C. и Р. Э. Вудс. Цифровая обработка изображений. Addison-Wesley Publishing Company, Inc., 1992.

Представлено до R2006a