deconvreg

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

Описание

пример

J = deconvreg(I,psf) deconvolves изображение I использование алгоритма регуляризованного фильтра, возврат окрашенного изображения 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. Оператор регуляризации по умолчанию является оператором Laplacian, чтобы сохранить гладкость изображения.

[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));

Деблур изображения.

[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. Axes 1 with title A = Blurred and Noisy contains an object of type image. Axes 2 with title [J LAGRA] = deconvreg(A,PSF,NP) contains an object of type image. Axes 3 with title deconvreg(A,PSF,[],0.1*LAGRA) contains an object of type image. Axes 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

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

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

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

свернуть все

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

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

Совет

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

Ссылки

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

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