Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мультимедиа7.docx
Скачиваний:
0
Добавлен:
20.06.2025
Размер:
13.85 Mб
Скачать

ГУАП

КАФЕДРА № 41

ОТЧЕТ ЗАЩИЩЕН С ОЦЕНКОЙ

ПРЕПОДАВАТЕЛЬ

доц., к.т.н., доц.

О.О. Жаринов

должность, уч. степень, звание

подпись, дата

инициалы, фамилия

ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №7

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

по курсу: МУЛЬТИМЕДИА ТЕХНОЛОГИИ

РАБОТУ ВЫПОЛНИЛ

СТУДЕНТ гр. №

4116

подпись, дата

инициалы, фамилия

Санкт-Петербург 2025

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

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

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

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

, (7.1)

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

Таким образом, пространственная фильтрация предполагает выполнение операции взвешенного суммирования значений пикселей исходного изображения в некоторой окрестности для каждого пикселя для всех индексов n и m. Нужно заметить, что при программной реализации (7.1) приходится несколько видоизменить индексацию, чтобы избежать отрицательных значений индексов массива в самой маске и при обработке краев изображения, хотя при вызове библиотечных методов Python [2-5] об этой особенности можно вовсе не задумываться.

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

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

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

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

Вариант 3:

На рисунке 1 представлен вариант маски искажений.

Рисунок 1 – Маска искажений

Ход работы:

Для выполнения лабораторной работы выбрано изображение с коллекцией автомобильных номерных знаков (Рисунок 2).

Рисунок 2 – Исходное изображение

Разработана программа для размытия изображения (Листинг 1). Основной функцией программы является создание маски двоения, которая формирует эффект размытия изображения. Программа формирует специальную маску размером 15⨯15 пикселей. В маске все элементы равны нулю, кроме двух точек в центральной строке, в начале и в конце строки, где установлены значения 0.5 (после нормировки исходных единичных значений) (Рисунок 3-4).

Листинг 1 – Применение маски с эффектом двоения

import cv2

from skimage import restoration

import numpy as np

import matplotlib.pyplot as plt

# функция, создающая маску двоения

# size - размер размаза в пикселях,

def double_mask(size):

k = np.zeros((size, size), dtype=np.float32)

# Находим центральную строку

center = (size-1) // 2

# Устанавливаем единицы в начале и конце центральной строки

k[center, 0] = 1.0

k[center, -1] = 1.0

k = k/np.sum(k) # нормировка

return k

# Загрузка изображения

input_image = cv2.imread('C:/jjj.jpg')

# нормировка данных изображения и перевод во float:

input_image = input_image.astype(np.float32)/255.

PSF_blur = double_mask(size=15)

print(PSF_blur)

blur_image = cv2.filter2D(input_image, -1, PSF_blur)

# Визуализация искаженного изображения

plt.figure()

plt.imshow(cv2.cvtColor(blur_image, cv2.COLOR_BGR2RGB))

plt.title('Изображение с эффектом двоения')

plt.axis('off')

plt.tight_layout()

plt.show()

Рисунок 3- Матрица маски

Рисунок 4 – Размытое изображение

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

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

При восстановлении используется метод Винера с уровнем шума 0,01. Этот метод применяется к каждому цветовому каналу отдельно. После этого выполняется восстановление методом Ричардсона-Люси с 15 итерациями, что позволяет постепенно улучшать качество изображения. Каждый метод обрабатывает изображение в нормализованном виде, а затем результаты преобразуются в формат для отображения.

При восстановлении с сохранением в файл процесс начинается с записи размытого изображения в файл. После сохранения изображение загружается обратно в память, и к нему применяются те же методы восстановления. Это позволяет увидеть, как сжатие JPEG влияет на качество восстановления.Результаты каждого метода визуализированы в отдельных окнах (Рисунок 5-10)

Листинг 2 – Восстановление на основе метода Винера

noise_var = 0.01

image_deblur = blur_image.copy()

for i in range(3):

image_deblur[:, :, i] = restoration.wiener(blur_image[:, :, i], PSF_blur, noise_var)

image_deblur = np.clip(image_deblur, 0., 1.)

image_deblur = (image_deblur*255.).astype(np.uint8)

Листинг 3 – Восстановление методом Люси-Ричардсона

its = 15

image_deblur = blur_image.copy()

for i in range(3):

image_deblur[:, :, i] = restoration.richardson_lucy(

blur_image[:, :, i], PSF_blur, num_iter=its)

image_deblur = np.clip(image_deblur, 0., 1.)

image_deblur = (image_deblur*255.).astype(np.uint8)

Листинг 4 – Сохранение и загрузка изображения

# Сохраняем размытое изображение

cv2.imwrite('blur_image.jpg', (blur_image*255).astype(np.uint8))

# Загружаем размытое изображение

blur_image =cv2.imread('blur_image.jpg').astype(np.float32)/255.

Рисунок 5– Изображение, восстановленное методом Винера без сохранения в файл

Рисунок 6 - Изображение, восстановленное алгоритмом Ричардсона-Люси с 15 итерациями

Рисунок 7- Изображение с эффектов двоения и восстановленное методом Винера

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

Рисунок 8- Изображение с эффектом двоения и восстановленное методом Люси-Ричардсона

Метод Люси- Ричардсона успешно устранил эффект двоения, который был на размытом изображении. Текст на номерных знаках стал значительно более четким и читаемым. Мелкие детали, такие как символы и декоративные элементы на номерных знаках, восстановлены с хорошей детализацией. Цвета остались естественными, без значительных искажений.

Рисунок 9Изображения, востановленные методом Винера с сохранением и без

Рисунок 10Изображения, востановленные методом Люси-Ричардсона с сохранением и без

Сравнивая восстановленные версии без сохранения и с сохранением, можно сказать, что при использовании метода Винера разница не заметна. Пи восстановлении изображения методом Люси-Ричардсона версия с сохранением имеет чуть менее насыщенные цвета.

Далее было реализовано восстановление с использованием масок, отличных от использованной для внесения искажений. Для этого созданы маски с размером 17 и 25. Результаты представлены на рисунках 11-14.

Рисунок 11 – Изображение, восстановленное с использованием метода Винера с размером маски 17

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

Рисунок 12 – Изображение, восстановленное с использованием метода Винера с размером маски 25

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

Рисунок 13 - Изображение, восстановленное с использованием метода Люси-Ричардсона с размером маски 17

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

Рисунок 14 - Изображение, восстановленное с использованием метода Люси-Ричардсона с размером маски 25

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

Исходное изображение было отредактировано для получения размытости в движении (Рисунок 15).

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

К данному изображению были применены методы восстановления. Размер маски взят 5. На рисунке 16 представлено восстановление с использованием метода фильтрации Винера с параметром noise_var = 0.03.

Рисунок 16 - Восстановление фильтром Винера, размер маски 5, noise_var 0.03

Рисунок 17Восстановление фильтром Винера, размер маски 5, noise_var 0.6

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

Рисунок 18 - Восстановление алгоритмом Ричардсона-Люси, итераций 5, размер маски 5

Рисунок 19 – Исходное изображение и восстановление алгоритмом Люси-Ричардсона, итераций 5, размер маски 5

Можно сказать, что алгоритм Люси-Ричардсона не дал существенного улучшения качества изображения. Читаемость номерных знаков осталась практически на том же уровне. В некоторых местах качество могло даже ухудшиться. Контраст стал немного выше, но это не привело к значительному улучшению читаемости номеров.

Вывод:

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

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

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

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

Эксперименты с сохранением промежуточных результатов в файл показали, что дополнительное сжатие JPEG оказывает минимальное влияние на качество восстановления методом Винера, но может приводить к небольшому снижению насыщенности цветов при использовании метода Люси-Ричардсона.

Соседние файлы в предмете Мультимедиа технологии