exponenta event banner

deconvwnr

Удаление размытия изображения с помощью фильтра Wiener

Описание

пример

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

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