MATLAB.Exponenta
MATLAB и Simulink на русском
Технологии разработки и отладки
		сложных технических систем

Обработка сигналов и изображений\ Image Processing Toolbox

И.М.Журавель "Краткий курс теории обработки изображений"

В оглавление книги \ К предыдущему разделу \ К следующему разделу

Реконструкция размытых изображений в MATLAB

Рассмотрим некоторые подходы к решению задачи восстановления изображений с использованием функции протяженности точки. При реализации алгоритмов в среде MATLAB будем использовать соответствующие функции (deblurring functions) пакета Image Processing Toolbox.

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

Деконволюция - процесс, обратный к свертке.

Оператор (функция) искажения - это оператор, который используется для моделирования искаженных изображений. Искажения, вносимые функцией протяженности точки, являются аналогичными тем, которые возникают на практике.

Функция оптического преобразования - в частотной области функция оптического преобразования характеризует отзыв линейной, инвариантной системы на импульс. Функция оптического преобразования является Фурье-преобразованием функции протяженности точки.

Функция протяженности точки - в пространственной области функция протяженности точки характеризует степень, с которой оптическая система размывает (распространяет) точечный свет. Функция протяженности точки является инверсным преобразованием Фурье от функции оптического преобразования.

Рассмотрим коротко основы технологии обработки размытых изображений.

Причины размытости изображений.

Причиной низкого качества (размытости) изображений могут быть различные факторы. Это может быть перемещение камеры в процессе захвата изображений, большое время экспозиции, розфокусировка, атмосферная турбулентность, рассеяние света в конфокальных микроскопах и т. д.

Модель размытых изображений.

Размытые и искаженные изображения приближенно могут быть описаны выражением

,

где - размытое изображение;

- оператор искажения, определяемый функцией протяженности точки. Свертка этой функции с изображением, является причиной искажений;

- исходное изображение;

- аддитивный шум, который вносится во время захвата изображений и искажает их.

Функция протяженности точки

Исходя из рассмотренной модели, фундаментальная задача восстановления размытых изображений состоит в деконволюции размытого изображения с функцией протяженности точки, которая в точности отображает искажения. Качество обработки размытых изображений определяется, главным образом, знаниями о функции протяженности точки.

Проиллюстрируем это на примере. Для создания функции протяженности точки используем функцию fspecial, которая будет симулировать искажения, обусловленные движением, зададим также длину размытия (LEN=31), и угол степени размытия (THETA=11). После того, как создана функция протяженности точки, используем, например, функцию imfilter для свертки с исходным изображением I, и создания размытого изображения.

I = imread('peppers.png');
I = I(60+[1:256],222+[1:256],:);
figure; imshow(I); title('Original Image');
LEN = 31;
THETA = 11;
PSF = fspecial('motion',LEN,THETA); % создание функции протяженности точки
Blurred = imfilter(I,PSF,'circular','conv');
figure; imshow(Blurred); title('Blurred Image');

Исходное изображение                                           Размытое изображение

Использование функций обработки размытых изображений

В пакете Image Processing Toolbox системы MATLAB существует четыре функции обработки размытых изображений:

  1. deconvwnr - выполняет восстановление размытых изображений с использованием винероской фильтрации;
  2. deconvreg - выполняет восстановление размытых изображений с использованием регуляризационных фильтров;
  3. deconvlucy - выполняет восстановление размытых изображений с использованием алгоритма Лаки-Ричардсона (Lucy-Richardson);
  4. deconvblind - выполняет восстановление размытых изображений с использованием алгоритма слепой деконволюции;

Функции протяженности точки могут принимать различный вид, который будет определять искажения на изображении. Функция deconvwnr используется при обработке изображений с небольшим разрешением. Функция deconvreg выполняет восстановление минимального квадратного разрешения, которое потом будет характеризовать результирующее изображение. Используя эти функции существует возможность понизить уровень шума в процессе обработки изображений, но при этом нужно задавать некоторые его параметры.

В основу функции deconvlucy положен алгоритм Лаки-Ричардсона (Lucy-Richardson). Эта функция является итерационной, использует технологию оптимизации и статистику Пуассона. Используя эту функцию, не нужно указывать информацию о аддитивном шуме искаженных изображений.

Функция deconvblind используется для реализации алгоритма слепой деконволюции, когда неизвестна функция протяженности точки, искажающая изображение. Результатом работы функции deconvblind является восстановленное изображение и функция протяженности точки. При выполнении алгоритма используются итерационные модели, аналогичные функции deconvlucy.

Восстановление размытых изображений методами винеровской фильтрации

Для восстановления изображений функция deconvwnr использует фильтр Винера. Винеровская деконволюция может быть эффективной, когда частотная характеристика изображения и аддитивного шума известны, хотя бы в небольшой степени. При отсутствии шума фильтр Винера превращается в идеальный инверсный фильтр.

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

1. Считываем изображение в рабочее пространство MATLAB.

I = imread('peppers.png');
I = I(10+[1:256],222+[1:256],:);
figure;imshow(I);title('Original Image');

Исходное изображение

2. Создание функции протяженности точки.

LEN = 31;
THETA = 11;
PSF = fspecial('motion',LEN,THETA);

3. Симуляция размытости на изображении.

Blurred = imfilter(I,PSF,'circular','conv');
figure; imshow(Blurred);title('Blurred Image');

Размытое изображение

4. Восстановление размытого изображения.

wnr1 = deconvwnr(Blurred,PSF);
figure;imshow(wnr1);
title('Restored, True PSF');

Изображение восстановленное методами винеровской фильтрации

Анализ результатов обработки

Результаты работы функции deconvolution можно использовать для определения оптимальных аргументов при реализации функции deconvwnr. Используя эти аргументы можно определить соотношение шум-сигнал и/или автокорреляционную функцию для усовершенствования результатов восстановления.

В оглавление книги \ К предыдущему разделу \ К следующему разделу


Поиск по сайту:

Система Orphus

Яндекс.Метрика