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

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

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

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

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

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

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

Фильтрация является одним из широко применяемых методов обработки изображений. Концептуальные идеи, положенные в основу методов фильтрации изображений, опираются на методологическую базу обработки одномерных сигналов, таких как аудио. Однако в отличие от задач фильтрации одномерных оцифрованных сигналов, которые представляют собой последовательность числовых значений, упорядоченную по времени появления каждого из них, последовательность значений пикселей изображения упорядочена лишь по возрастанию индексов строк и столбцов соответствующих матриц. Соответственно, если для временных сигналов период измеряется в секундах, а частота, соответственно, в Герцах ([Гц]=[1/c]), то применительно к изображениям период повторения группы пикселей и соответствующая периоду повторения пространственная частота (англ. – space frequency) выражаются в условных безразмерных единицах. Тем не менее, для обработки изображений также успешно применяются подходы, связанные с избирательным воздействием на определенные частотные компоненты с целью целенаправленного изменения свойств изображения

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

Фильтрация всегда основана на наличии существенных различий в спектральном составе различных компонентов, составляющих исходное изображение. Для получения информации о частотном составе цифровых изображений существует специальный метод и алгоритм – двумерное быстрое преобразование Фурье (2D-БПФ). В результате его применения к массиву {xn,m} образуется массив значений его спектра {Xn,m}. Существует также и алгоритм обратного действия (обратное 2D-БПФ): по массиву значений спектра {Xn,m} можно вычислить массив значений пикселей изображения {xn,m}. В этом смысле концепция выглядит так же, как и в случае одномерного БПФ.

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

1

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

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

Для модификации спектра исходного изображения {Xn,m} необходимо задать массив отсчетов двумерной дискретной передаточной функции фильтра {Wn,m}, после чего выполнить преобразование

 

=

, для всех n и m.

(1)

,

,

,

 

При задании массива {Wn,m} исходят из требований к свойствам, которые необходимо придать выходному изображению.

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

Всегда важно помнить, что свойство симметрии алгоритма двумерного БПФ требует обязательного выполнения условия комплексно-сопряженной симметрии для массива {Wn,m}. Для облегчения реализации этого принципа в MATLAB введена специальная операция центрирования спектра fftshift(). Эта команда осуществляет двумерный циклический сдвиг спектра, так что компоненты спектра с нулевыми индексами сдвигаются в центр матрицы спектра. Тогда при необходимости оставить в изображении только низкие частоты (т.е. оставить неизмененными протяженные объекты

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

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

На листинге 1 приведен текст Matlab-программы, которая позволяет вычислить двумерный центрированный спектр изображения и визуализировать его [1].

2

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

Листинг 1 – Вычисление двумерного центрированного спектра изображения и визуализация его амплитудного спектра

I = imread('D:/image.jpg');

if (size(I,3) == 3) I = rgb2gray(I); end I = im2double(I);

S = fftshift(fft2(I)); % 2D-БПФ изображения, центрирован

A = abs(S); % амплитудный спектр

A_max = max(max(A));

eps = A_max*10^(-6); %добавка, чтобы не вычислить lg(0)

A_dB = 20*log10(A + eps); % перевод в дБ figure('Name','Спектр изображения, в псевдоцвете'); imagesc(A_dB) % вывод двумерного спектра изображения colorbar

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

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

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

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

 

 

M

 

M

 

N

 

N

 

 

 

0, для

 

SF m

 

 

SF,

 

SF n

 

SF,

SF 30,

 

 

 

 

 

 

 

Wn

 

2

 

2

 

 

2

 

2

 

 

(1)

1,

для остальных m и n.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

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

Листинг 2 – MATLAB-программа, реализующая простейший способ реализации метода Фурье-фильтрации изображения с целью выделения краев объектов

clc, clear, close all %очистка памяти I = imread('D:/image.jpg');

%перевод изображения в оттенки серого

%(получение матрицы яркости):

if (size(I,3) == 3) I = rgb2gray(I); end I = im2double(I);

% Вычисление 2D-БПФ изображения:

%(получение матрицы центрированного спектра):

Spectr_input_image = fftshift(fft2(I));

A = abs(Spectr_input_image); % амплитудный спектр A_max = max(max(A));

eps = A_max*10^(-6); %добавка, чтобы не вычислить lg(0)

A_dB = 20*log10(A + eps); % перевод в дБ figure(1)

%вывод графика спектра изображения imagesc(A_dB)

[M,N] = size(Spectr_input_image); % получение размера массива

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

%настраиваем пространственную частоту среза фильтра:

space_freq = 30;

%массив из единиц для маски фильтрации в частотной области mask=ones([M, N]);

%задание маски ФВЧ (обнуляем элементы

%в прямоугольной области в окрестности центра): mask(round(M/2) - space_freq : round(M/2) + space_freq, ...

round(N/2) - space_freq : round(N/2) + space_freq)=0;

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

%изменение спектра по формуле (1):

Spectr_output_image = Spectr_input_image.* mask; figure(2)

%визуализация измененного спектра: imagesc(20*log10(abs(Spectr_output_image)+eps))

%обратное 2D-БПФ:

J = (ifft2(ifftshift(Spectr_output_image), ...

'symmetric')); %обратное 2D-БПФ

%нормировка значений пикселей: max_J = max(max(J));

output_image = im2uint8((J./max_J));

%инверсия яркостей пикселей,

%чтобы получить черные границы на белом фоне output_image = 255 - output_image; figure(3), imshow(I)

figure(4), imshow(output_image) imwrite(output_image, 'D:/edges_image.jpg');

4

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

Рисунок 2 – Результат Фурье-фильтрации изображения при помощи фильтра, выделяющего края объектов (см. программу на листинге 1): слева

исходное изображение, справа – результат фильтрации.

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

 

 

 

d m, n D

 

 

 

 

 

 

 

K

 

W

 

m, n

up

 

 

,

HP

d m, n D

 

2K

 

1

 

 

 

 

 

 

 

 

 

 

up

 

 

(2)

 

 

 

 

M

2

 

 

N

2

 

 

где

d m, n

m

 

n

,

а Dup

представляет собой значение

 

 

 

 

 

 

 

 

 

2

 

 

 

 

2

 

 

 

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

На листинге 3 приведен пример усовершенствованной программы, реализующей алгоритм Фурье-фильтрации изображения, с целью выделения границ объектов с использованием маски (2) с параметрами Dup= 45 ед., K=4. На рисунке 4 показан результат работы данной программы. Видно, что по сравнению с рисунком 2, полученный результат смотрится гораздо лучше.

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

5

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

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

Листинг 3 – MATLAB-программа, реализующая усовершенствованный способ реализации метода Фурье-фильтрации изображения с целью выделения краев объектов с использованием пространственного ФВЧ Баттерворта

clc, clear, close all

I = imread('D:/image.jpg');

if (size(I,3) == 3) I = rgb2gray(I); end I = im2double(I);

S_I = fftshift(fft2(I)); % 2D-БПФ ярк. составляющей

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

D_up = 45; K=4; deg = 2*K;

[M, N] = size(I); W = zeros([M N]); %пустой массив для W Cn = round(N/2); Cm = round(M/2); % координаты центра

%формируем массив W

for n = 1:N

for m = 1:M

d = sqrt((m - Cm)^2 + (n - Cn)^2); W(m,n) = (d/D_up)^K/sqrt(1+(d/D_up)^deg);

end

end

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

S_J = S_I.* W; %изменение спектра фильтром

%визуализируем полученный спектр. вых. изобр.:

A = abs(S_J); % амплитудный спектр

A_max = max(max(A));

eps = A_max*10^(-6); %добавка, чтобы не вычислить lg(0)

A_dB = 20*log10(A + eps); % перевод в дБ imagesc(A_dB)

J = (ifft2(ifftshift(S_J), 'symmetric')); %2D-ОБПФ figure('Name','Изобр. на вых. фильтра');

max_J = max(max(J));

output_image = im2uint8(J./max_J); output_image = 255 - output_image; % инверсия

% output_image = imbinarize(output_image, 'global'); imshow(output_image)

imwrite(output_image, 'D:/edge_image.jpg');

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

6

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

При желании улучшить качество результата, получаемого в программе, приведенной в листинге 3, достаточно раскомментировать строчку

output_image = imbinarize(output_image, 'global');

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

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

Рисунок 4 – Результат фильтрации изображения при помощи метода Собеля, выделяющего края объектов: слева исходное изображение, справа – результат фильтрации

Листинг 4 – MATLAB-программа фильтрации изображения при помощи метода Собеля, выделяющего края объектов

clc,clear, close all

input_image = imread('D:/input_image.jpg'); %чтение изображения if (size(I,3) == 3) I = rgb2gray(I); end

I = im2double(I); figure(1) imshow(I)

output_image = edge(I,'Sobel'); %реализуем фильтр для выделения краев с применением фильтра Собеля

max_output_image = max(max(output_image));

output_image = im2uint8(output_image./max_output_image); %нормировка

output_image = 255 - output_image;

figure(2) imshow(output_image) title('output image') %запись изображения в файл:

imwrite(output_image, 'D:/output_spatial_filtered.jpg');

7

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

Рисунок 5 – Результат фильтрации изображения при помощи метода Собеля, выделяющего края объектов: слева исходное изображение, справа – результат фильтрации

Заметим, что в MATLAB реализованы многие другие алгоритмы, предназначенные для выделения границ объектов, такие как "Prewitt" "Roberts", "log", "zerocross", "Canny", "approxcanny":

соответствующие методы можно использовать в программе, приведенной в листинге 4, написав любое из этих слов вместо метода 'Sobel'.

Рисунок 6 – Сравнение результатов обработки изображения при помощи метода фильтрации в спектральном пространстве с последующей бинаризацией (слева) и метода Собеля (справа)

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

Выполнение лабораторной работы предполагает фильтрацию изображения с целью выделения краев объектов. В методе фильтрации в спектральном пространстве (см. листинги 2, 3) неочевидным является выбор

8

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

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

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

Порядок выполнения работы

1.Согласовать с преподавателем вариант задания во время занятия по расписанию, удостовериться в правильном понимании задания и критериев его оценки.

2.Обработать тестовое изображение при помощи программ, тексты которых приведены в листингах 1 – 4 и сохранить полученные результаты. Следует привести график амплитудного спектра изображения, а также пары изображений для обеспечения возможности проведения анализа эффективности обработки: исходного и обработанного, при разных значениях величины пространственной частоты среза. В отчете следует привести результаты как для наилучшего значения параметра фильтра, так и для двух-трех существенно отличающихся значений, использованных при подборе значения параметра. Если при некоторых значениях параметра частоты среза будут проявляться неожиданные и интересные побочные эффекты обработки изображения, следует об этом упомянуть.

3.При желании обучающийся может попробовать реализовать в спектральном пространстве другие типы двумерных фильтров (ФНЧ, ПФ и РФ) [1] и проанализировать их влияние на изображение. Определенный интерес может представлять реализация обработки не матрицы яркостей пикселей, а трех матриц основных цветов исходного изображения по отдельности.

4.Сформулировать выводы.

Содержание отчета

1.Цель работы.

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

3.Описание тестовых изображений, используемых при выполнении лабораторной работы.

9

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

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

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

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

7.Список используемых источников, желательно не только из списка рекомендуемой литературы, приветствуется использование Интернетресурсов; на все источники в тексте отчета должны быть ссылки.

Контрольные вопросы

1.С какой целью производится инверсия значений яркости пикселей изображений при реализации метода выделения краев объектов?

2.Почему приходится подбирать наилучшее значение частоты среза пространственного фильтра высоких частот при реализации метода выделения краев объектов?

3.В чем причина возникновения эффекта Гиббса при реализации спектральных методов обработки изображений?

4.Каков принцип работы двумерных фильтров, реализуемых в спектральном пространстве?

5.Каков принцип формирования массива передаточной функции двумерного фильтра для ФНЧ (возможные варианты вопроса: ФВЧ, ПФ, РФ)?

6.Какие изменения в изображении ожидаются при применении к нему ФНЧ?

7.Каков принцип работы функции, выполненющей бинаризацию изображения?

Рекомендуемая литература

1. Основы цифровой обработки изображений: учеб. пособие

/ Жаринов О.О. ГУАП. СПб, 2023. 122 с.

2.Работа с изображениями в среде Matlab. // URL: https://studbooks.net/2140144/informatika/rabota_izobrazheniyami_srede_ matlab

3.Список функций Image Processing Toolbox // URL: https://hub.exponenta.ru/post/spisok-funktsiy-image-processing- toolbox152?ysclid=l8vjnq87jn578408698

10

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

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