deconvreg

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

Синтаксис

J = deconvreg(I,psf)
J = deconvreg(I,psf,np)
J = deconvreg(I,psf,np,lrange)
J = deconvreg(I,psf,np,lrange,regop)
[J,lagra] = deconvreg(___)

Описание

пример

J = deconvreg(I,psf) deconvolves отображают 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)');

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

свернуть все

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

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

PSF, заданный как числовой массив.

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

Шумовая степень, заданная в виде числа.

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

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

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

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

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

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

свернуть все

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

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

Советы

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

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