deconvlucy

Изображение Deblur с помощью метода Люси-Ричардсона

Синтаксис

J = deconvlucy(I,psf)
J = deconvlucy(I,psf,iter)
J = deconvlucy(I,psf,iter,dampar)
J = deconvlucy(I,psf,iter,dampar,weight)
J = deconvlucy(I,psf,iter,dampar,weight,readout)
J = deconvlucy(I,psf,iter,dampar,weight,readout,subsample)

Описание

пример

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, более прекрасными, чем изображение.

Примеры

свернуть все

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

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)');

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

свернуть все

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

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

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

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

Количество итераций, заданных как положительное целое число.

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

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

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

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

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

Подвыборка, заданная как положительная скалярная величина.

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

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

свернуть все

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

Советы

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

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

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

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

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

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

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

Ссылки

[1] Округ Южная Каролина. Четырехрядные ячмени и М. Эндрюс, Ускорение итеративных алгоритмов восстановления изображений, Прикладной Оптики, Издания 36, № 8, 1997.

[2] Р.Дж. Хэниш, Р.Л. Вайт, и Р.Л. Джиллилэнд, Развертки Изображений Космического телескопа Хабблa и Спектров, Развертка Изображений и Спектров, Эда. П.А. Янссон, 2-й редактор, Academic Press, CA, 1997.

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