Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Теория / мт__МТ__лаб07

.pdf
Скачиваний:
0
Добавлен:
25.04.2024
Размер:
857.9 Кб
Скачать

Лабораторная работа №7.

Основы цифровой фильтрации изображений средствами MATLAB. Пространственные фильтры

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

Краткие теоретические сведения

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

Математически принцип линейной пространственной фильтрации изображения {I[m,n]} описывается формулой

J m, n

P

Q

H p, q I m p, n q ,

 

p P q Q

(1)

где массив коэффициентов {H[p,q]}p=−P,...P; q=−Q,...Q называется маской фильтра и полностью определяет его свойства. В программах обработки изображений для задания массива маски часто используется идентификатор PSF (англ. Point Spread Function – функция рассеяния точки). Размер маски в (1) составляет (2P+1) на (2Q+1) элементов. Обычно размер маски выбирают небольшим, чаще всего задают P=Q=1, т. е. в этом случае маска представляет собой массив размера 3×3.

Таким образом, пространственная фильтрация предполагает выполнение операции взвешенного суммирования значений пикселей исходного изображения в некоторой окрестности для каждого пикселя для всех индексов n и m. Нужно заметить, что при программной реализации формулы (1) придется несколько видоизменить формулу, чтобы избежать отрицательных значений индексов массива в самой маске и при обработке краев изображения.

Принцип задания значений элементов маски определяется желаемым действием фильтра на обрабатываемое изображение [1].

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

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

1

© Жаринов О.О. Учебно-методические материалы к выполнению лабораторной работы №7 по дисциплине “Мультимедиа-технологии “, испр. 21.03.2024, гр.4016, 4017. ГУАП, 2024. – 14 с.

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

с

с

с

 

 

 

1 8с

 

(2)

H

с

с ,

 

с

с

 

 

 

с

 

где выбор положительной константы с следует производить, ориентируясь на получаемый результат: при c ≈ 0 коррекция будет неощутима, а при чрезмерном ее увеличении («перекоррекции») каждый, даже мелкий, объект в выходном изображении получит окантовки по периметру, и полученное изображение будет восприниматься хуже исходного.

В листинге 1 приведен текст программы, реализующий данный пространственный фильтр, а на рисунке 1 приведен пример, наглядно иллюстрирующий его работу. С другими подходами к улучшению четкости расфокусированных изображений можно ознакомиться в [1].

Листинг 1 – Программа, реализующая один из вариантов универсального метода повышения резкости расфокусированного изображения

clc,clear, close all %очистка памяти

I = imread('D:/image.jpg'); % чтение изображения

%Создание маски для фильтра, повышающего резкость: c = 0.6; % Задание коэффициента в маске фильтра

%Формирование матрицы – маски пространственного фильтра:

PSF = [-c,

-c,

-c;

-c, 1

+ 8*c,

-c;

-c,

-c,

-c];

% Фильтрация

изображения непосредственно в RGB:

J = imfilter(I, PSF);

figure('Name','Изображение повышенной резкости'); imshow(J)

imwrite(J, 'D:\deblurred_image.jpg');

2

© Жаринов О.О. Учебно-методические материалы к выполнению лабораторной работы №7 по дисциплине “Мультимедиа-технологии “, испр. 21.03.2024, гр.4016, 4017. ГУАП, 2024. – 14 с.

а)

б)

Рисунок 1 - Результаты обработки изображения программой повышения резкости (см. листинг 1): а) исходное изображение; б) изображение после обработки.

Более сложным для коррекции является случай, когда изображение приобрело специфическое искажение четкости, известное как “смазывание” (blurring), которое является типичным при фотографировании в случае даже незначительного движения фотоаппарата во время экспозиции. Теоретические положения, лежащие в основе методов, позволяющих осуществить некоторую компенсацию таких искажений изображения, слишком сложны для изложения в рамках методических указаний к лабораторной работе, однако в Matlab для этой цели имеется несколько встроенных функций. В рамках данной лабораторной работы изучаются две из них: метод восстановления изображений с использованием регуляризации Тихонова (реализован в функции deconvreg) и метод инверсной винеровской фильтрации (реализован в функции deconvwnr).

3

© Жаринов О.О. Учебно-методические материалы к выполнению лабораторной работы №7 по дисциплине “Мультимедиа-технологии “, испр. 21.03.2024, гр.4016, 4017. ГУАП, 2024. – 14 с.

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

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

Для изучения особенностей методов восстановления смазанных изображений целесообразно обратиться к имитационному моделированию. В листинге 2 представлен текст mat-файла [2], который позволяет внести искажения типа “смазывание” в любое имеющееся в наличии “идеальное” изображение. Подобные модели внесения контролируемых искажений полезны при отладке алгоритмов обработки.

Листинг 2 – MATLAB-программа в виде mat-файла, позволяющая формировать изображение, искаженное смазыванием, отображать его и сохранять в файл в формате *.jpg

% Пример моделирования смаза изображения clc,clear, close all %очистка памяти

input_image = imread('D:/image.jpg'); %чтение изображения

%Вывод исходного изображения: figure (1) imshow(input_image)

title('input image','FontSize',10, 'FontName','Tahoma')

%Создание маски (модель искажений) для смазывания изображения.

%формируем фильтр для внесения искажений типа смаз,

%длиной 8 пикселей под углом 35 градусов:

PSF = fspecial('motion',8,35);

%Оба параметра можно менять по своему усмотрению!

%Смазывание изображения:

distorted_image = imfilter(input_image, PSF,'circular');

%***********************************************************

%Вывод смазанного изображения: imshow(distorted_image)

title('distorted image','FontSize',10,'FontName','Tahoma')

%запись искаженного изображения в файл:

imwrite(distorted_image, 'D:/distorted_image.jpg');

4

© Жаринов О.О. Учебно-методические материалы к выполнению лабораторной работы №7 по дисциплине “Мультимедиа-технологии “, испр. 21.03.2024, гр.4016, 4017. ГУАП, 2024. – 14 с.

В листинге 3 приведен текст программы, которая позволяет обработать изображение, искаженное посредством программы, текст которой приведен в листинге 2. Здесь нужно обратить внимание, что модель искажений в программе, призванной компенсировать расфокусировку, задана идентичной той, которая была применена в программе, вносящей искажения.

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

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

Листинг 3 – MATLAB-программа, реализующая два метода фильтровкомпенсаторов искажений типа “смазывание”

clc, clear, close all %очистка памяти

input_image = imread('D:/distorted_image.jpg'); %чтение изображения

figure (1) imshow(input_image)

%Параметры смаза изображения: Delta = 8; %длина смаза в пикселях theta = 35; %угол смаза в градусах

PSF = fspecial('motion',Delta,theta); % модель искажений

%% важно заметить, что здесь движение – равномерное!

%устранение смаза изображения

noise_level_T = 0.01; % подбор уровня шума в изображении % компенсация движения посредством метода А.Н.Тихонова:

Tikh = deconvreg(input_image,PSF,[], noise_level_T); figure(2) imshow(Tikh)

title('Restored image Tikhonov')

%запись восстановленного изображения в файл: imwrite(Tikh, 'D:/restored_image_Tikhonov.jpg');

%компенсация движения посредством метода Н.Винера: noise_level_W = 0.01; % подбор уровня шума в изображении

Wnr = deconvwnr(input_image,PSF, noise_level_W); figure(3)

imshow(Wnr)

title('Restored image Wiener')

%запись восстановленного изображения в файл: imwrite(Wnr, 'D:/restored_image_Wiener.jpg');

5

© Жаринов О.О. Учебно-методические материалы к выполнению лабораторной работы №7 по дисциплине “Мультимедиа-технологии “, испр. 21.03.2024, гр.4016, 4017. ГУАП, 2024. – 14 с.

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

distorted_image = imnoise(distorted_image,'salt & pepper',0.01);

в результате чего 1% пикселей искажены окажутся сильно искажены шумом типа “соль и перец” (появятся хаотически рассыпанные по изображению черные и белые точки).

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

Результаты фильтрации расфокусированного и дополнительно зашумленного изображения приведены на рисунке 3. Видно, что восстановленные изображения выглядят гораздо хуже, чем аналогичные, представленные на рисунке 2.

Из рассмотрения рисунка 3 можно сделать вывод, что в данном конкретном случае метод компенсации смазывания изображения, основанный на методе регуляризации Тихонова, работает лучше, чем метод на основе винеровской фильтрации. Подчеркнем еще раз, что при несоответствии модели искажений, принятой в алгоритме компенсации смазывания, реальному механизму воздействия этих искажений на исходное изображение, результат компенсации всегда будет хуже. Обучающимся предлагается проверить этот факт, несогласованно изменяя в некоторых пределах числовые значения параметров Delta и theta в программах, приведенных в листингах 2 и 3, как с введением дополнительного зашумления, так и без него.

Варианты заданий

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

Для выполнения лабораторной работы каждый обучающийся выбирает изображение для выполнения работы по своему усмотрению. При необходимости создания собственных тестовых изображений можно использовать бесплатный редактор, входящий в MS Windows.

6

© Жаринов О.О. Учебно-методические материалы к выполнению лабораторной работы №7 по дисциплине “Мультимедиа-технологии “, испр. 21.03.2024, гр.4016, 4017. ГУАП, 2024. – 14 с.

Рисунок 2 – Результат компенсации смазывания изображения: в центре исходное расфокусированное изображение, искаженное программой, текст которой приведен в листинге 2 (без введения дополнительного шума); слева

– результат фильтрации по методу регуляризации Тихонова; справа – по методу инверсной винеровской фильтрации.

Рисунок 3 – Результат компенсации смазывания изображения: в центре исходное расфокусированное изображение, искаженное программой, текст которой приведен в листинге 2 (c введением дополнительного шума); слева – результат фильтрации по методу регуляризации Тихонова, справа – по методу инверсной винеровской фильтрации.

В процессе выполнения лабораторной работы нужно выполнить 3 задания:

1)Подвергнуть исходное качественное модельное изображение искажению типа “смазывание”, без внесения дополнительного зашумления (см. листинг 2), и запустить на выполнение программу, которая обеспечит компенсацию внесенных искажений (см. листинг 3). Параметры искажений нужно выбирать такими, чтобы искажения были заметными, но не чрезмерными.

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

3)Взять какое-либо реальное изображение, имеющее заметные искажения

типа расфокусировки и/или смазывания, модель искажений для

7

© Жаринов О.О. Учебно-методические материалы к выполнению лабораторной работы №7 по дисциплине “Мультимедиа-технологии “, испр. 21.03.2024, гр.4016, 4017. ГУАП, 2024. – 14 с.

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

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

При выполнении третьего задания строчку

PSF = fspecial('motion',Delta,theta)

можно использовать только в случае, если в обрабатываемом изображении очевидны искажения типа “смаз”, возникшие именно вследствие движения в некотором направлении. Если же изображение просто является расфокусированным, то рекомендуется использовать вариант для случая статической расфокусировки [6]:

PSF = fspecial('gaussian', Sigma),

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

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

PSF_guessed = (fspecial('gaussian', 60)).^(1/8);

S = sum(sum(PSF_guessed));

PSF_guessed = PSF_guessed./S;

R = deconvwnr(I,PSF_guessed,0.02)

Следует отметить, что зачастую посредством простейшего способа обработки (см. листинг 1) удается получить субъективно лучшее качество изображения, чем при использовании сложных функций восстановления с использованием кропотливого подбора параметров для функций инверсной фильтрации. Это подтверждается рисунком 4, где представлено изображение, полученное посредством программы, текст которой приведен в листинге 1, с параметром с=0.4.

8

© Жаринов О.О. Учебно-методические материалы к выполнению лабораторной работы №7 по дисциплине “Мультимедиа-технологии “, испр. 21.03.2024, гр.4016, 4017. ГУАП, 2024. – 14 с.

Рисунок 4 (начало) – Исходное изображение

9

© Жаринов О.О. Учебно-методические материалы к выполнению лабораторной работы №7 по дисциплине “Мультимедиа-технологии “, испр. 21.03.2024, гр.4016, 4017. ГУАП, 2024. – 14 с.

Рисунок 4 (продолжение) – Изображение, восстановленное методом инверсной винеровской фильтрации

10

© Жаринов О.О. Учебно-методические материалы к выполнению лабораторной работы №7 по дисциплине “Мультимедиа-технологии “, испр. 21.03.2024, гр.4016, 4017. ГУАП, 2024. – 14 с.

Соседние файлы в папке Теория