exponenta event banner

deconvlucy

Размытие изображения методом Люси-Ричардсона

Описание

пример

J = deconvlucy(I,psf) восстанавливает изображение I который был деградирован сверткой с функцией точечного расширения (PSF), psfи, возможно, аддитивным шумом. Алгоритм основан на максимизации вероятности того, что полученное изображение J является экземпляром исходного изображения I в разделе статистики Пуассона.

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

пример

J = deconvlucy(I,psf,iter) определяет количество итераций, iter.

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

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

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

J = deconvlucy(I,psf,iter,dampar,weight,readout,subsample) использует субдискретизацию, когда PSF задается на сетке, которая subsample раз лучше, чем изображение.

Примеры

свернуть все

Чтение и отображение нетронутого изображения, не имеющего размытия или шума. В этом примере изображение, возможно, будет обрезано до размера 256 на 256 с верхней левой (x, y) координатой (2,50).

I = imread('board.tif');
I = imcrop(I,[2 50 255 255]);
imshow(I)
title('Original Image')

Figure contains an axes. The axes with title Original Image contains an object of type image.

Создайте PSF, который представляет размытие по Гауссу со стандартным отклонением 5 и фильтром размером 5 на 5.

PSF = fspecial('gaussian',5,5);

Моделирование размытия изображения.

blurred = imfilter(I,PSF,'symmetric','conv');

Добавьте смоделированный нулевой средний гауссов шум.

V = 0.002;
blurred_noisy = imnoise(blurred,'gaussian',0,V);
imshow(blurred_noisy)
title('Blurred and Noisy Image')

Figure contains an axes. The axes with title Blurred and Noisy Image contains an object of type image.

Использовать deconvlucy для восстановления размытого и шумного изображения. Укажите PSF, используемый для создания размытия, и уменьшите число итераций до 5.

luc1 = deconvlucy(blurred_noisy,PSF,5);
imshow(luc1)
title('Restored Image')

Figure contains an axes. The axes with title Restored Image contains an object of type image.

Создайте образец изображения и размыте его.

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

Создайте массив весов и вызовите функцию deconvlucy, используя несколько дополнительных параметров.

WT = zeros(size(I));
WT(5:end-4,5:end-4) = 1;
J1 = deconvlucy(BlurredNoisy,PSF);
J2 = deconvlucy(BlurredNoisy,PSF,20,sqrt(V));
J3 = deconvlucy(BlurredNoisy,PSF,20,sqrt(V),WT);

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

subplot(221);imshow(BlurredNoisy);
title('A = Blurred and Noisy');
subplot(222);imshow(J1);
title('deconvlucy(A,PSF)');
subplot(223);imshow(J2);
title('deconvlucy(A,PSF,NI,DP)');
subplot(224);imshow(J3);
title('deconvlucy(A,PSF,NI,DP,WT)');

Figure contains 4 axes. Axes 1 with title A = Blurred and Noisy contains an object of type image. Axes 2 with title deconvlucy(A,PSF) contains an object of type image. Axes 3 with title deconvlucy(A,PSF,NI,DP) contains an object of type image. Axes 4 with title deconvlucy(A,PSF,NI,DP,WT) contains an object of type image.

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

свернуть все

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

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

PSF, указанный как числовой массив.

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

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

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

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

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

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

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

Субдискретизация, заданная как положительный скаляр.

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

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

свернуть все

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

Совет

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

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

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

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

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

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

  • deconvlucy преобразует PSF в double без нормализации.

  • deconvlucy может возвращать значения в выходном изображении, которые находятся за пределами диапазона входного изображения.

Ссылки

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

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

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