
pmi432 / LR07 / 2read / из Журавеля / 13. Восстановление изображений методом слепой деконволюции
.pdf
Image Processing Toolbox. . . . |
. 1 |
MATLAB.Exponenta
|
Семинары |
Тренинги |
Лицензирование |
Материалы |
|
Подписка |
|
Форум |
Регистрация |
Matlab |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Toolboxes |
|
|
|
|
Запрос цены |
|
Пробная версия |
|
Запрос демонстрации |
|
Simulink |
|
|
|
|
|
|
|
|
|
|
|
|
Blocksets |
|
|
|
|
|
|
|
|
|
Вход |
|
|
|
|
|
|
|
|
|
|
|
Полезное |
||
|
|
|
|
|
|
|
|
|
|
|
|
Обработка сигналов и изображений\image Processing Toolbox
И.М.Журавель "Краткий курс теории обработки изображений"
В оглавление \ К следующему разделу \ К предыдущему разделу
Восстановление изображений методом слепой деконволюции
Наиболее целесообразно использовать метод слепой деконволюции тогда, когда исследователь не располагает информацией об имеющихся искажениях (размытие и шум). Алгоритм восстанавливает одновременно изображение и функцию протяженности точки (PSF). Дополнительные характеристики оптической системы (например, камеры) могут быть использованы в качестве исходных параметров, что приведет к улучшению восстановления изображений. Вид функции протяженности точки PSF задается пользователем перед выполнением операции восстановления.
Ключевые термины: Слепая деконволюция; восстановление изображений; функция протяженности точки PSF
Ключевые функции: deconvblind, edge, imdilate, imfilter
Содержание демонстрационного примера
Демонстрационный пример включает следующие шаги:
Шаг 1: Считывание изображения.
Шаг 2: Симуляция размытостей.
Шаг 3: Восстановление размытого изображения с использованием функции протяженности точки с различными параметрами.
Шаг 4: Повышение качества восстановления.
Шаг 5: Использование дополнительных ограничений для функции протяженности точки при восстановлении изображений.
Шаг 1: Считывание изображения.
На данном этапе приведем пример считывания яркостного полутонового изображения.
I=imread('cameraman.tif');
figure;imshow(I); title('Исходное изображение');
Шаг 2: Симуляция размытостей.
Проведем симулирование реалистических размытых изображений (например, в результате движения камеры или недостаточной фокусировки объектива). В этом примере симуляция размытостей на изображении достигается в результате свертки гауссовского фильтра с исходным изображением. Для этого можно использовать также функцию imfilter. Гауссовский фильтр представляется функцией протяженности точки PSF.
PSF=fspecial('gaussian', 7, 10); Blurred=imfilter(I, PSF ,'symmetric', 'conv');
figure; imshow(Blurred);title('Размытое изображение');
http://matlab.exponenta.ru/imageprocess/book2/49.php |
08.11.2012 23:18:00 |

Image Processing Toolbox. . . . |
. 2 |
Шаг 3: Восстановление размытого изображения с использованием функции протяженности точки с различными параметрами.
Для иллюстрации того, насколько важно иметь информацию о параметрах истинной функции протяженности точки, приведем три варианта восстановления.
В первом варианте восстановления (J1 и P1) используется малоразмерный массив UNDERPSF. Иными словами, предполагается, что функция протяженности точки является именно такой. Размер массива UNDERPSF является на 4 пикселя меньше по каждой размерности относительно размеров истинной функции протяженности точки.
UNDERPSF=ones(size(PSF)-4);
[J1 P1]=deconvblind(Blurred, UNDERPSF);
figure; imshow(J1); title('Восстановление с малоразмерной PSF');
Во втором варианте восстановления (J2 и P2) используется массив единиц OVERPSF, размерность которого по обоим направлениям на 4 пикселя больше истинной размерности функции протяженности точки PSF.
OVERPSF=padarray(UNDERPSF, [4 4], 'replicate', 'both'); [J2 P2]=deconvblind(Blurred, OVERPSF);
figure;imshow(J2); title('Восстановление с большими размерами PSF');
http://matlab.exponenta.ru/imageprocess/book2/49.php |
08.11.2012 23:18:00 |

Image Processing Toolbox. . . . |
. 3 |
В третьем варианте восстановления (J3 и P3) используется массив единиц INITPSF, размерность которого аналогична размерности истинной PSF.
INITPSF=padarray(UNDERPSF, [2 2], 'replicate', 'both'); [J3 P3]=deconvblind(Blurred, INITPSF);
figure; imshow(J3); title('Восстановление с INITPSF');
Анализ восстановления PSF.
Во всех трех вариантах восстановления использовалась функция протяженности точки PSF. Следующие изображения демонстрируют анализ восстановления истинных параметров функции протяженности точки PSF на основе рассуждений с использованием догадок.
Истинная PSF в виде гауссовского фильтра имеет максимальное значение в центре (белый цвет) и убывает по мере отдаления от него.
figure;
subplot(221);imshow(PSF, [], 'notruesize'); title('Истинная PSF');
http://matlab.exponenta.ru/imageprocess/book2/49.php |
08.11.2012 23:18:00 |

Image Processing Toolbox. . . . |
. 4 |
Функция протяженности точки P1, полученная при первом восстановлении, явно не соответствует истинному размеру. Это приводит к сильному искажению сигнала, особенно на краях. В результате, на обработанном изображении не будет достигнуто нужного уровня улучшения.
subplot(222); imshow(P1, [] ,'notruesize'); title('Восстановленная малоразмерная PSF');
Функция протяженности точки P2, полученная при втором восстановлении, приводит к очень большим размытостям на краях объектов изображения. Это говорит о том, что восстановление нужно проводить с функцией протяженности точки PSF, размеры которой будут меньше. Тогда, соответственно, искажения на результирующем изображении будут меньше и не так заметны.
subplot(223);imshow(P2, [] ,'notruesize'); title('Восстановление с большими размерами PSF');
И, наконец, функция протяженности точки P3, полученная при третьем восстановлении, представляет собой нечто среднее между P1 и P2. Массив P3 наиболее похож на истинную функцию протяженности точки PSF. И соответственно, результирующее изображение является наилучшим по качеству.
subplot(224); imshow(P3, [], 'notruesize'); title('Восстановленная истинная PSF');
http://matlab.exponenta.ru/imageprocess/book2/49.php |
08.11.2012 23:18:00 |

Image Processing Toolbox. . . . |
. 5 |
Шаг 4: Повышение качества восстановления.
Искажения в восстановленном изображении J3 наиболее заметны в областях с высоким контрастом и вдоль границ объектов изображения. Рассмотрим методы понижения этих искажений с использованием так называемых взвешенных функций. В процессе восстановления изображения и функции протяженности точки PSF алгоритм присваивает каждому пикселю некоторый вес в соответствии с массивом WEIGHT. В нашем примере обработка начинается с обнаружения "высококонтрастных" пикселей с использованием функции края edge. Методом проб и ошибок определяется нужный порог. В нашем случае он равен 0.3.
WEIGHT=edge(I, 'sobel', .3);
Для расширения области используется функция imdilate и дискообразные структурные элементы. se=strel('disk', 2);
WEIGHT=1-double(imdilate(WEIGHT, se));
Далее применяются морфологические операции закрытия пикселей на краях и присвоение им значения 0.
WEIGHT([1:3 end-[0:2]], :)=0; WEIGHT(:, [1:3 end-[0:2]])=0;
figure; imshow(WEIGHT);title('Массив весов');
Теперь при проведении операции восстановления изображения будет применяться функция deconvblind вместе с массивом весов WEIGHT, что приведет к увеличению числа итераций (до 30). Таким образом подавляются почти все искажения, которые были на восстановленном изображении.
[J P]=deconvblind(Blurred, INITPSF, 30, [], WEIGHT); figure; imshow(J); title('Восстановленное изображение');
http://matlab.exponenta.ru/imageprocess/book2/49.php |
08.11.2012 23:18:00 |

Image Processing Toolbox. . . . |
. 6 |
Шаг 5: Использование дополнительных ограничений для функции протяженности точки при восстановлении изображений.
В этом примере рассмотрим использование некоторых дополнительных ограничений при формировании функции протяженности точки PSF. Зададим некоторую функцию FUN, которая возвращает модифицированный массив PSF и который, в свою очередь, применяется в функции deconvblind. В этом примере функция FUN модифицирует массив PSF, проводя коррекцию ее размеров. Отметим, что эта операция не приводит к изменению значений в центре функции протяженности точки PSF.
str='padarray(PSF(P1+1:end-P1, P2+1:end-P2), [P1 P2])'; FUN=inline(str, 'PSF', 'P1', 'P2');
Далее, как было сказано ранее, FUN используется в функции deconvblind.
В этом примере исходные размеры PSF, OVERPSF, являются на 4 пикселя больше от истинного значения. P1=2 и P2=2 являются исходными параметрами в FUN при поиске истинного значения функции протяженности точки PSF.
[JF PF]=deconvblind(Blurred, OVERPSF, 30, [], WEIGHT, FUN, 2, 2); figure; imshow(JF);title('Восстановленное изображение');
При данных параметрах получим результат, который очень похож на результат, полученный на Шаге 4.
Когда в качестве исходной взять функцию протяженности точки PSF с очень большими размерами, тогда получим результат аналогичный Шагу 3.
В оглавление \ К следующему разделу \ К предыдущему разделу
I Всероссийская научная конференция «Проектирование научных и инженерных приложений в среде MATLAB» (май 2002 г.) II Всероссийская научная конференция «Проектирование научных и инженерных приложений в среде MATLAB» (май 2004 г.)
III Всероссийская научная конференция «Проектирование научных и инженерных приложений в среде MATLAB» (октябрь 2007 г.) IV Всероссийская научная конференция «Проектирование научных и инженерных приложений в среде MATLAB» (май 2009 г.)
V Всероссийская научная конференция «Проектирование научных и инженерных приложений в среде MATLAB» (май 2011 г.)
На первую страницу \ Сотрудничество \ MathWorks \ Softline \ Контакты \ Вакансии |
||
Информация на сайте была обновлена 21.04.12 |
Copyright 2001–2012 Softline Co |
|
Наши баннеры |
||
|
подарки – подарочные сертификаты
http://matlab.exponenta.ru/imageprocess/book2/49.php |
08.11.2012 23:18:00 |