exponenta event banner

deconvblind

Размытие изображения с помощью слепой деконволюции

Описание

[J,psfr] = deconvblind(I,psfi) deconvolves изображение I используя алгоритм максимального правдоподобия и начальную оценку функции точечного расширения (PSF), psfi. deconvblind функция возвращает оба размытых изображения J и восстановленный PSF, psfr.

Для улучшения реставрации, deconvblind поддерживает несколько дополнительных параметров, описанных ниже. Использовать [] в качестве местозаполнителя, если не указан промежуточный параметр.

[J,psfr] = deconvblind(I,psfi,iter) определяет количество итераций, iter.

[J,psfr] = deconvblind(I,psfi,iter,dampar) управляет усилением шума путем подавления итераций для пикселей, которые отклоняются на небольшую величину по сравнению с шумом, определяемым порогом демпфирования dampar. По умолчанию демпфирование не выполняется.

пример

[J,psfr] = deconvblind(I,psfi,iter,dampar,weight) указывает, какие пикселы во входном изображении I рассматриваются в реставрации. Значение элемента в weight массив определяет, сколько пиксел в соответствующей позиции во входном изображении рассматривается. Например, чтобы исключить пиксель из рассмотрения, назначьте ему значение 0 в weight массив. Можно настроить значение веса, назначенное каждому пикселю, в соответствии с величиной коррекции плоского поля.

[J,psfr] = deconvblind(I,psfi,iter,dampar,weight,readout) определяет аддитивный шум (например, фоновый и основной шум) и дисперсию шума от считываемой камеры, readout.

[J,psfr] = deconvblind(___,fun), где fun - дескриптор функции, описывающий дополнительные ограничения в PSF. fun вызывается в конце каждой итерации. Дополнительные сведения об дескрипторах функций см. в разделе Создание дескриптора функции.

Примеры

свернуть все

Создание образца изображения с шумом.

% Set the random number generator back to its default settings for
% consistency in results.
rng default;

I = checkerboard(8);
PSF = fspecial('gaussian',7,10);
V = .0001;
BlurredNoisy = imnoise(imfilter(I,PSF),'gaussian',0,V);

Создайте массив весов, чтобы указать, какие пикселы включаются в обработку.

WT = zeros(size(I));
WT(5:end-4,5:end-4) = 1;
INITPSF = ones(size(PSF));

Выполните слепую деконволюцию.

[J P] = deconvblind(BlurredNoisy,INITPSF,20,10*sqrt(V),WT);

Просмотрите результаты.

subplot(221);imshow(BlurredNoisy);
title('A = Blurred and Noisy');
subplot(222);imshow(PSF,[]);
title('True PSF');
subplot(223);imshow(J);
title('Deblurred Image');
subplot(224);imshow(P,[]);
title('Recovered PSF');

Figure contains 4 axes. Axes 1 with title A = Blurred and Noisy contains an object of type image. Axes 2 with title True PSF contains an object of type image. Axes 3 with title Deblurred Image contains an object of type image. Axes 4 with title Recovered PSF contains an object of type image.

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

свернуть все

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

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

Начальная оценка PSF, заданная как числовой массив. На восстановление PSF сильно влияет размер начального предположения psfi и меньше на значения, которые он содержит. По этой причине укажите массив 1s в качестве вашего psfi.

Можно также указать psfi в виде массива ячеек для включения прерывистых итераций. Дополнительные сведения см. в разделе Советы.

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

Число итераций, указанное как положительное целое число.

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

Порог демпфирования, заданный как числовой скаляр. Демпфирование происходит для пикселей, отклонение между итерациями которых меньше порогового значения. dampar имеет тот же тип данных, что и I.

Значение веса каждого пикселя, указанное как числовой массив со значениями в диапазоне [0, 1]. weight имеет тот же размер, что и входное изображение, I. По умолчанию все элементы в weight иметь значение 1, так что все пиксели рассматриваются одинаково при восстановлении.

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

Шум, заданный как числовой скалярный или числовой массив. Значение readout соответствует аддитивному шуму (например, шуму от переднего плана и фона) и дисперсии шума от считываемой камеры. readout имеет тот же тип данных, что и I.

Дескриптор функции, указанный как дескриптор. fun должен принять PSF в качестве первого аргумента. Функция должна возвращать один аргумент: PSF, размер которого совпадает с исходным PSF и который удовлетворяет ограничениям позитивности и нормализации.

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

свернуть все

Размытое изображение, возвращаемое в виде числового массива или массива ячеек 1 на 4. J (или J{1} когда J - массив ячеек) имеет тот же тип данных, что и I. Дополнительные сведения о возврате J в качестве массива ячеек для прерванных итераций см. раздел Советы.

Восстановлен PSF, возвращен как массив положительных чисел или массив ячеек 1 на 4. psfr имеет тот же размер, что и первоначальная оценка PSF, psfiи нормализуется таким образом, что сумма элементов равна 1. Дополнительные сведения о возврате psfr в качестве массива ячеек для прерванных итераций см. раздел Советы.

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

Совет

  • Вы можете использовать deconvblind для выполнения деконволюции, которая начинается с остановки предыдущей деконволюции. Для использования этой функции передайте входное изображение I и начальное предположение на PSF, psfi, в качестве массивов ячеек: {I} и {psfi}. Когда вы делаете, deconvblind функция возвращает выходное изображение J и восстановленной функции точечного распределения, psfr, как массивы ячеек, которые затем могут быть переданы как входные массивы в следующий deconvblind звоните. Массив выходных ячеек J содержит четыре элемента:

    J{1} содержит I, оригинальное изображение.

    J{2} содержит результат последней итерации.

    J{3} содержит результат итерации «следующий-последний».

    J{4} - массив, генерируемый итеративным алгоритмом.

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

Ссылки

[1] ОКРУГ ЮЖНАЯ КАРОЛИНА. Биггс и М. Эндрюс, Ускорение алгоритмов итеративного восстановления изображений, Applied Optics, том 36, № 8, 1997.

[2] Р. Дж. Ханиш, Р. Л. Уайт и Р. Л. Гиллиланд, деконволюции изображений и спектров космического телескопа Хаббл, деконволюция изображений и спектров, ред. П. А. Янссон, 2-е изд., Академическая пресса, Калифорния, 1997

Timothy J. Holmes, et al., Световые микроскопические изображения, реконструированные деконволюцией с максимальным правдоподобием, Справочник биологической конфокальной микроскопии, Ed. James B. Pawley, Plenum Press, Нью-Йорк, 1995.

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