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) использует subsampling, когда 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, Vol. 36, № 8, 1997.

[2] R.J. Hanisch, R.L. White, and R.L. Gilliland, Deconvolutions of Hubble Пространства Telescope Изображений and Спектров, Deconvolution of Изображений and Спектров, Ed.A. Jansson, 2nd ed, Academic Press, Ca, 1997.

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