Добавил:
t.me Инфо для ГУАП студентов от меня: https://kafaka.notion.site/99e6d9b70ca74f7baef3daea17839e5a Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Z9411_Чурилов_ММ_ЛР7

.docx
Скачиваний:
1
Добавлен:
10.11.2024
Размер:
7.92 Mб
Скачать

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное автономное образовательное учреждение высшего образования

«САНКТ-ПЕТЕРБУРГСКИЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»

КАФЕДРА № 41

ЛАБОРАТОРНАЯ РАБОТА

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

РУКОВОДИТЕЛЬ

доц., канд. техн. наук, доц.

О. О. Жаринов

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

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

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

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

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

по курсу: Мультимедиа технологии

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

СТУДЕНТ ГР. №

Z9411

А. С. Чурилов

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

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

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

2024

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

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

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

Изученные методы фильтрации:

  1. Пространственная фильтрация:

  • Пространственные фильтры используются для непосредственной работы с пикселями изображения. Основной математический принцип заключается в применении маски (или ядра) фильтра к каждому пикселю изображения для вычисления нового значения на основе локального взвешенного суммирования значений пикселей.

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

  1. Методы восстановления изображений:

  • Фильтр Винера: применяется для восстановления изображения из-под влияния искажений, таких как шум и размытие. Этот метод использует статистические характеристики для оптимальной оценки искажения.

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

  1. Компенсация искажений (дефокусировка и смазывание):

  • Часто встречающиеся искажения, такие как размытие из-за движения камеры или неправильной фокусировки, могут быть скомпенсированы через обратную фильтрацию, используя априорно известные или оцененные характеристики искажающего фильтра (PSF — Point Spread Function).

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

Вариант задания:

Вид искажения:

Вариант №3.

%% сферическая расфокусировка радиусом в P пикселей

PSF = fspecial('disk',P);

S = imfilter(input_image, PSF,'replicate');

Вид шума:

Вариант №1.

% шум типа "соль и перец" (зашумлено 0.1% изображения)

distorted_image = imnoise(S,'salt & pepper',0.001);

Ход работы:

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

Листинг 1 – Искажение исходного изображения

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

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

% Вывод исходного изображения:

figure (1)

imshow(input_image)

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

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

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, 'distorted_image.jpg');

Листинг 2 – Компенсация исходных искажений

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

input_image = imread('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, 'restored_image_Tikhonov.jpg');

% Компенсация движения посредством метода Н.Винера:

noise_level_W = 0.02; % Подбор уровня шума в изображении

Wnr = deconvwnr(input_image,PSF, noise_level_W);

figure(3)

imshow(Wnr)

title('Restored image Wiener')

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

imwrite(Wnr, 'restored_image_Wiener.jpg');

Исходное изображение показано на рисунке 1.

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

Искажённое изображение показано на рисунке 2.

Рисунок 2. Искажённое изображение

Изображение после применения компенсации движения посредством метода А. Н. Тихонова показано на рисунке 3.

Рисунок 3. Изображение после применения компенсации движения посредством метода А. Н. Тихонова

Изображение после применения компенсации движения посредством метода Н. Винера показано на рисунке 4.

Рисунок 4. Изображение после применения компенсации движения посредством метода Н. Винера

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

Листинг 3 – Искажение искажённого изображения доп. шумом

% Пример моделирования смаза изображения

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

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

% Вывод исходного изображения:

figure (1)

imshow(input_image)

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

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

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

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

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

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

imshow(distorted_image)

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

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

imwrite(distorted_image, 'distorted_image_with_noise.jpg');

Листинг 4 – Компенсация искажений с шумом

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

input_image = imread('distorted_image_with_noise.jpg'); % Чтение изображения

figure (1)

imshow(input_image)

% Параметры смаза изображения:

Delta = 8; % Длина смаза в пикселях

theta = 35; % Угол смаза в градусах

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

% Компенсация движения посредством метода А.Н.Тихонова:

noise_level_T = 0.07; % Подбор уровня шума в изображении

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

imshow(Tikh)

title('Restored image Tikhonov')

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

imwrite(Tikh, 'restored_image_Tikhonov.jpg');

% Компенсация движения посредством метода Н.Винера:

noise_level_W = 0.1; % Подбор уровня шума в изображении

Wnr = deconvwnr(input_image,PSF, noise_level_W);

figure(3)

imshow(Wnr)

title('Restored image Wiener')

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

imwrite(Wnr, 'restored_image_Wiener.jpg');

Искажённое шумом изображение показано на рисунке 5.

Рисунок 5. Искажённое шумом изображение

Изображение после применения компенсации движения посредством метода А. Н. Тихонова показано на рисунке 6.

Рисунок 6. Изображение после применения компенсации движения посредством метода А. Н. Тихонова

Изображение после применения компенсации движения посредством метода Н. Винера показано на рисунке 7.

Рисунок 7. Изображение после применения компенсации движения посредством метода Н. Винера

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

ВЫВОД

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

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

СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ

  1. Основы цифровой обработки изображений: учеб. пособие / Жаринов О.О. ГУАП. СПб, 2023. 122 с.

  2. Обработка изображений в системе MATLAB. / сост. Батура В.А., Тропченко А.Ю., Тропченко А.А. СПб: Университет ИТМО, 2019. 41 с.

  3. Дьяконов В. MATLAB 8.0 (R2012b): создание, обработка и фильтрация сигналов, Signal Processing Toolbox. // Компоненты и технологии, 2013. №11, с. 151-161.

  4. Работа с изображениями в среде Matlab. // URL: https://studbooks.net/2140144/informatika/rabota_izobrazheniyami_srede_matlab (дата обращения 11.04.2024)

  5. Список функций Image Processing Toolbox // URL: https://hub.exponenta.ru/post/spisok-funktsiy-image-processing-toolbox152?ysclid=l8vjnq87jn578408698 (дата обращения 11.04.2024)

  6. Create predefined 2D-filter: fspecial // URL: https://www.mathworks.com/help/images/ref/fspecial.html (дата обращения 11.04.2024)