deconvwnr

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

Описание

пример

J = deconvwnr(I,psf,nsr) deconvolves изображение I использование алгоритма фильтра Винера, возврат окрашенного изображения J. psf - функция расширения точек (PSF), с помощью которой I был свертан. nsr - отношение степени шума к сигналу аддитивного шума. Алгоритм оптимален в смысле наименьшей средней квадратной ошибки между оцененным и истинным изображениями.

J = deconvwnr(I,psf,ncorr,icorr) deconvolves изображение I, где ncorr является автокорреляционной функцией шума и icorr - автокорреляционная функция оригинального изображения.

J = deconvwnr(I,psf) deconvolves изображение I использование алгоритма фильтра Винера без предполагаемого шума. В отсутствие шума фильтр Винера эквивалентен идеальному обратному фильтру.

Примеры

свернуть все

Прочтите изображение в рабочую область и отобразите его.

I = im2double(imread('cameraman.tif'));
imshow(I);
title('Original Image (courtesy of MIT)');

Figure contains an axes. The axes with title Original Image (courtesy of MIT) contains an object of type image.

Симулируйте размытие движения.

LEN = 21;
THETA = 11;
PSF = fspecial('motion', LEN, THETA);
blurred = imfilter(I, PSF, 'conv', 'circular');
figure, imshow(blurred)

Figure contains an axes. The axes contains an object of type image.

Моделируйте аддитивный шум.

noise_mean = 0;
noise_var = 0.0001;
blurred_noisy = imnoise(blurred, 'gaussian', ...
                        noise_mean, noise_var);
figure, imshow(blurred_noisy)
title('Simulate Blur and Noise')

Figure contains an axes. The axes with title Simulate Blur and Noise contains an object of type image.

Попробуйте восстановить, если нет шума.

estimated_nsr = 0;
wnr2 = deconvwnr(blurred_noisy, PSF, estimated_nsr);
figure, imshow(wnr2)
title('Restoration of Blurred, Noisy Image Using NSR = 0')

Figure contains an axes. The axes with title Restoration of Blurred, Noisy Image Using NSR = 0 contains an object of type image.

Попробуйте восстановить, используя лучшую оценку отношения степень.

estimated_nsr = noise_var / var(I(:));
wnr3 = deconvwnr(blurred_noisy, PSF, estimated_nsr);
figure, imshow(wnr3)
title('Restoration of Blurred, Noisy Image Using Estimated NSR');

Figure contains an axes. The axes with title Restoration of Blurred, Noisy Image Using Estimated NSR contains an object of type image.

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

свернуть все

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

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

Функция расширения точек, заданная как числовой массив.

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

Отношение шум/сигнал, заданное как неотрицательный скалярный или числовой массив того же размера, что и изображение, I. Если nsr является массивом, тогда он представляет спектральную область. Определение 0 для nsr эквивалентно созданию идеального обратного фильтра.

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

Автокорреляционная функция шума, заданная как числовой массив любого размера или размерности, не превышающий оригинального изображения.

  • Если размерность ncorr соответствует размерности изображения I, тогда значения соответствуют автокорреляции в каждой размерности.

  • Если ncorr является вектором и psf является также вектором, затем значениями в ncorr представление автокорреляционной функции в первой размерности.

  • Если ncorr является вектором и psf является массивом, затем 1-D автокорреляционная функция экстраполируется симметрией на все несинглтонные размерности psf.

  • Если ncorr является скаляром, тогда значение представляет степень шума изображения.

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

Автокорреляционная функция изображения, заданная как числовой массив любого размера или размерности, не превышающий оригинального изображения.

  • Если размерность icorr соответствует размерности изображения I, тогда значения соответствуют автокорреляции в каждой размерности.

  • Если icorr является вектором и psf является также вектором, затем значениями в icorr представление автокорреляционной функции в первой размерности.

  • Если icorr является вектором и psf является массивом, затем 1-D автокорреляционная функция экстраполируется симметрией на все несинглтонные размерности psf.

  • Если icorr является скаляром, тогда значение представляет степень шума изображения.

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

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

свернуть все

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

Совет

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

Ссылки

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

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