exponenta event banner

deconvreg

Размытие изображения с помощью регуляризованного фильтра

Описание

пример

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. Оператором регуляризации по умолчанию является оператор Лапласа для сохранения гладкости изображения.

[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

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

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

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

свернуть все

Размытое изображение, возвращаемое в виде числового массива. J имеет тот же тип данных, что и I.

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

Совет

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

Ссылки

[1] Гонсалес, Р. К. и Р. Э. Вудс. Обработка цифрового изображения. Издательская компания Аддисон-Уэсли, Инк., 1992.

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